검색 결과 :

×

Laravel을 OAuth/OpenID Connect 공급자로 사용하여 Drupal에 SSO 로그인


Drupal OAuth/OpenID Connect SSO 통합을 통해 Drupal 사이트와 Laravel Passport 간의 SSO가 가능해졌습니다. 이 설정 가이드는 구성에 도움이 됩니다. 싱글 사인온 (SSO) OAuth / OpenID Connect 모듈을 사용하여 Drupal 사이트와 Laravel Passport 사이. 이 모듈은 Drupal 7, Drupal 8, Drupal 9 및 Drupal 10과 호환됩니다. OAuth/OpenID Connect 모듈을 Drupal 사이트와 통합하면 Laravel Passport 자격 증명을 사용하여 Drupal 사이트에 원활하게 로그인할 수 있습니다.

설치 단계 :


  • 모듈을 다운로드합니다:
    작곡가는 'drupal/miniorange_oauth_client'가 필요합니다.
  • 로 이동 하다 Drupal 관리 콘솔의 메뉴에서 다음을 검색하세요. miniOrange OAuth 클라이언트 구성 검색창을 이용하세요.
  • 확인란을 선택하여 모듈을 활성화하고 설치 버튼을 클릭합니다.
  • 다음 위치에서 모듈을 구성할 수 있습니다.
    {BaseURL}/admin/config/people/miniorange_oauth_client/config_clc
  • 모듈 설치:
    drush 및 drupal/miniorange_oauth_client
  • 캐시 지우기:
     드러쉬 cr
  • 다음 위치에서 모듈을 구성할 수 있습니다.
    {BaseURL}/admin/config/people/miniorange_oauth_client/config_clc
  • 로 이동 하다 Drupal 관리 콘솔의 메뉴에서 다음을 클릭하세요. 새 모듈 설치.
  • 드루팔 설치 OAuth 및 OpenID Connect 로그인 - OAuth2 클라이언트 SSO 로그인 모듈을 zip을 다운로드하거나 URL에서 다운로드하여 패키지(tar/zip).
  • 를 클릭하십시오 새로 추가된 모듈 활성화.
  • 확인란을 선택하여 이 모듈을 활성화하고 다음을 클릭하세요. 설치 버튼을 클릭합니다.
  • 다음 위치에서 모듈을 구성할 수 있습니다.
    {BaseURL}/admin/config/people/miniorange_oauth_client/config_clc

Drupal을 OAuth 클라이언트로 설정:

  • Drupal 사이트에서 다음으로 이동합니다. 구성 -> miniOrange OAuth 클라이언트 구성 -> OAuth 구성 탭.
  • Drupal을 OAuth/OpenID Connect Single Sign-On으로 사용 - Naviagte 구성 - miniOrange OAuth 클라이언트 구성
  • 선택 사용자 정의 OAuth 2.0 공급자 인사말 신청서 선택 쓰러지 다.
  • 복사 콜백/리디렉션 URL 그리고 그것을 편리하게 보관하십시오.
  • 주의 사항: 제공업체가 HTTPS만 지원하는 경우 콜백/리디렉션 URL HTTP 사이트가 있는 경우 'HTTPS 콜백 URL 시행탭 하단의 ' 확인란을 선택하세요.

  • 애플리케이션 이름으로 Laravel을 입력합니다. 표시 이름 텍스트 필드.
  • Drupal을 OAuth/OpenID Connect Single Sign-On으로 - OAuth 구성에서 - 응용 프로그램 선택에서 사용자 정의 OAuth 2.0 공급자 선택 - 콜백 복사

Laravel Passport에서 OAuth / OpenID SSO 애플리케이션 생성:

  • 명령을 사용하여 로컬 컴퓨터에 laravel 프로젝트를 만들고 설정합니다.
    작곡가 생성 프로젝트 --prefer-dist laravel/laravel 블로그
  • 다음을 사용하여 디렉토리를 블로그로 변경하십시오. CD 블로그 명령. Laravel 여권을 설치하십시오.
    작곡가는 laravel/passport가 필요합니다
  • config/app.php로 이동하여 아래 공급자를 추가하세요.
    Laravel\Passport\PassportServiceProvider::클래스
  • 아래 명령을 실행하세요.
    PHP 장인이 마이 그 레이션
    PHP 장인 여권:설치
  • We Buy Orders 신청서를 클릭하세요. 앱/User.php 모델 클래스, 추가 HasApiToken 코드의 특징:
        네임스페이스 앱;
        Laravel\Passport\HasApiTokens를 사용하세요.
        Illuminate\Contracts\Auth\MustVerifyEmail을 사용하세요. Illuminate\Foundation\Auth\User를 인증 가능으로 사용하세요; Illuminate\Notifications\Notified를 사용하세요. 클래스 사용자는 인증 가능 {
          HasApiTokens, Notified를 사용합니다.
         
          
            /** * 대량 할당이 가능한 속성입니다. * * @var 배열 */
            
            protected $fillable = [ '이름', '이메일', '비밀번호', ];
         
            /** * 배열에 대해 숨겨야 하는 속성입니다. * * @var 배열 */
            protected $hidden = [ '비밀번호', 'remember_token', ];
         
            /** * 네이티브 유형으로 캐스팅되어야 하는 속성입니다. * * @var 배열 */
           
            protected $casts = [ 'email_verified_at' => 'datetime', ]; }
        
  • We Buy Orders 신청서를 클릭하세요. 앱/공급자/AuthServiceProvider.php추가 Laravel\Passport\Passport를 사용하십시오. , 여권::경로(); 서비스 코드로 경로 지정:
        네임스페이스 앱\공급자;
        Laravel\Passport\Passport를 사용하십시오.
        Illuminate\Foundation\Support\Providers\AuthServiceProvider를 ServiceProvider로 사용하세요. Illuminate\Support\Facades\Gate를 사용합니다. AuthServiceProvider 클래스는 ServiceProvider를 확장합니다.
        
            /** * 애플리케이션에 대한 정책 매핑입니다. * * @var 배열 */
            protected $policies = [ // 'App\Model' => 'App\Policies\ModelPolicy', ];
         
            /** * 인증/권한 부여 서비스를 등록합니다. * * @return 무효 */
            공용 함수 boot() { $this->registerPolicies();
                여권::경로();
                // } }
       
  • We Buy Orders 신청서를 클릭하세요. 구성/auth.php 그리고 API 드라이버 토큰 여권 Passport 라이브러리를 사용할 것이기 때문입니다.
        'guards' => [ 'web' => [ 'driver' => '세션', 'provider' => 'users', ], 'api' => [
                    '운전사' => '여권',
                    '공급자' => '사용자', '해시' => false, ], ],
        

Drupal을 Laravel과 통합:

  • Laravel 포털로 이동하여 다음 명령을 실행하여 가져옵니다. 고객 ID 고객 비밀:
    PHP 장인 여권: 클라이언트
  • 다음과 같은 질문을 할 것입니다:
        클라이언트에 어떤 사용자 ID를 할당해야 합니까?: > 1 클라이언트 이름을 무엇으로 지정해야 합니까?: > 데모 OAuth2 클라이언트 계정 승인 후 요청을 어디로 리디렉션해야 합니까? > 콜백/리디렉션 URL을 붙여넣으세요. 새 클라이언트가 성공적으로 생성되었습니다. 클라이언트 ID: 1 클라이언트 비밀번호: zMm0tQ9Cp7LbjK3QTgPy1pssoT1X0u7sg0YWUW01
        
  • 클라이언트 ID와 클라이언트 비밀 값을 복사합니다.
  • 드루팔로 가세요 OAuth 구성 탭해서 복사한 것을 붙여넣으세요 고객 ID클라이언트 비밀 해당 텍스트 필드에.
  • Drupal의 OAuth 구성 탭에서 Laravel Passport-Application의 클라이언트 ID와 클라이언트 비밀번호를 제공하세요.
  • UserInfo 엔드포인트를 수동으로 생성하려면 앱/Http/컨트롤러, 파일을 생성하세요 UserController.php:
        <?php
        네임스페이스 App\Http\Controllers;
        App\Http\Controllers\Controller를 사용하세요.
        Illuminate\Http\Request를 사용하세요;
        앱\모델\사용자를 사용합니다.
        인증을 사용하세요.
        UserController 클래스는 Controller를 확장합니다.
        {
            공개 함수 get(요청 $request)
            {
                $user_id = 인증::id();
                $user = 사용자::find($user_id);
                $user를 반환합니다.
            }
        }
        
  • 아래 줄을 추가하여 API 경로를 등록합니다. 경로/api.php 파일 :
        //Laravel이 8 미만이고 8 버전으로 마이그레이션된 경우:
        경로::middleware('auth:api')->get('/user/get', 'UserController@get');
            OR
        //Laravel 8 신규 사용자의 경우:
         App\Http\Controllers\UserController를 사용합니다. 경로::middleware('auth:api')->get('/user/get', 'App\Http\Controllers\UserController@get');
        
  • Drupal의 OAuth 구성 탭에 다음 범위와 엔드포인트를 복사하여 붙여넣습니다.
    범위 openid 이메일 프로필
    엔드포인트 승인 /oauth/승인
    액세스 토큰 엔드포인트 /oauth/토큰
    사용자 정보 끝점 가져오기 /api/사용자/가져오기
  • Drupal의 OAuth 구성 탭에서 Laravel Passport 애플리케이션의 범위와 엔드포인트를 제공하세요.
  • 온 클릭 구성 저장 버튼을 클릭합니다.

Drupal과 Laravel 간의 연결 테스트

  • 온 클릭 테스트 구성 수행 버튼을 눌러 Drupal과 Laravel 사이의 SSO(Single Sign-On) 연결을 확인하세요.
  • Drupal과 Laravel Passport 간의 Single Sign-On 연결 테스트 - 테스트 구성 수행을 클릭합니다.
  • 테스트 연결 팝업에서 동일한 브라우저의 Laravel에 활성 세션이 없으면 Laravel 계정에 로그인하라는 메시지가 표시됩니다. Laravel 계정에 성공적으로 로그인하면 Laravel Passport에서 받은 속성 목록이 제공됩니다.
  • 선택 이메일 속성 사용자의 이메일을 가져온 드롭다운 메뉴에서 선택한다 버튼을 클릭합니다.
  • Laravel에서 받은 속성 목록을 제공하려면 - 드롭다운 목록에서 이메일 속성을 선택하세요.

참고 사항 : 로그인이 작동하려면 이메일 속성 매핑이 필수입니다.

축하해요! Laravel Passport를 OAuth/OpenID 공급자로, Drupal을 OAuth 클라이언트로 성공적으로 구성했습니다.

SSO를 수행하는 방법은 무엇입니까?

  • 이제 새 브라우저/개인 창을 열고 Drupal 사이트 로그인 페이지로 이동하세요.
  • 온 클릭 Laravel을 사용하여 로그인 Drupal에서 SSO를 시작하는 링크입니다.
  • 다른 페이지에도 SSO 링크를 추가하려면 아래 이미지에 제공된 단계를 따르세요.
  • Drupal OAuth OpenID Single Single-On - Drupal 사이트의 다른 페이지에 로그인 링크 추가

도움이 필요하다?

구성 중에 문제가 발생하거나 추가 기능을 원하는 경우 다음 주소로 문의해 주세요. drupalsupport@xecurify.com.

추가 기능:

문제 해결 :

오류 발생: '사용자 이름을 받지 못했습니다. 속성 매핑 구성을 확인하세요.' 또는 오류 발생: '이메일을 받지 못했습니다. 속성 매핑 구성을 확인하세요.'
 

언급된 단계를 따르세요. 여기를 클릭하십시오.

테스트 구성을 수행하려고 하면 "헤더 또는 본문에서 클라이언트 자격 증명을 찾을 수 없습니다"라는 메시지가 나타납니다.
 

언급된 단계를 따르세요. 여기를 클릭하십시오.

Drupal에서 로그아웃을 클릭하면 Drupal 홈페이지로 다시 돌아갑니다. 그런데 다른 사용자로 로그인을 시도하면 로그인하라는 메시지가 표시되지 않고 자동으로 동일한 사용자로 로그인됩니다.
 

여기서 언급한 로그아웃 기능은 모듈의 기본 동작입니다. Drupal에서는 로그아웃되지만 응용 프로그램/공급자에서는 로그아웃되지 않습니다. 모듈이 공급자/애플리케이션 계정(원하는 계정)에서 로그아웃할 수 있도록 하려면 다음과 같이 구성해야 합니다.자세한 내용을 알고]

유료 Drupal 모듈을 구매하고 무료 모듈로 교체했는데 여전히 유료 기능을 사용할 수 없습니다.
 

Drupal 모듈의 유료 버전 중 하나로 업그레이드하고 무료 모듈을 유료 모듈로 교체했으므로 먼저 유료 모듈을 활성화해야 합니다. 아래 단계를 참조하세요. [더 많이 알아라.]

자주 묻는 질문 (FAQ)
 고객사례
miniOrange는 매우 유연하고 사용자 정의가 가능한 Drupal 솔루션을 통해 400개 이상의 신뢰할 수 있는 고객의 사용 사례를 성공적으로 충족했습니다. 이 기능을 사용하여 우리의 독특한 사례 연구를 자유롭게 확인해 보세요. 링크.
 기타 솔루션
우리가 제공하는 다른 Drupal 솔루션을 자유롭게 탐색해보세요. 여기에서 지금 확인해 보세요.. 신뢰할 수 있는 고객이 사용하는 인기 있는 솔루션에는 2단계 인증(XNUMXFA), 웹사이트 보안, REST 및 JSON API 인증, 사용자 프로비저닝 및 동기화가 포함됩니다. 
  24*7 적극적인 지원
miniOrange의 Drupal 개발자는 귀하의 쿼리에 대해 빠르고 적극적인 지원을 제공합니다. 귀하의 사용 사례에 가장 적합한 솔루션을 선택하는 것부터 솔루션 배포 및 유지 관리까지 도움을 드릴 수 있습니다.
안녕하세요!

도움이 필요하다? 우리는 바로 여기에 있습니다!

SUPPORT
miniOrange 지원팀에 문의하세요
성공

문의 해 주셔서 감사합니다.

24시간 이내에 연락을 받지 못한 경우 언제든지 다음 이메일로 후속 이메일을 보내주세요. info@xecurify.com