이 구성 요소를 사용하면 외부 OAuth2 공급자(Azure AD, Google, Facebook 등)를 통합할 수 있습니다.
이 구성 요소를 사용하면 서버 구성 요소(예: HTTP 서버)에 외부 OAuth2 공급자(Azure AD, Google, Facebook 등)를 통합할 수 있으므로, 사용자가 Azure AD 자격 증명을 사용하여 로그인할 수 있고 인증이 성공하면 HTTP 서버가 보호된 리소스에 대한 액세스를 제공할 수 있습니다.
서버 구성 요소에는 Authorization.OAuth.OAuth2Provider라는 속성이 있어 TsgcHTTP_OAuth2_Server_Provider의 인스턴스를 할당할 수 있습니다. 따라서 Authentication이 활성화되어 있고 OAuh2Provider 속성이 OAuth2 Provider Server 구성 요소에 연결되어 있으면, WebSocket 및 HTTP 요청은 처리되기 위해 Cookie / Bearer Token이 필요하며, 그렇지 않으면 연결이 자동으로 닫힙니다.
OAuth2Provider := TsgcHTTP_OAuth2_Server_Provider.Create(nil);
Server.Authentication.Enabled := True;
Server.Authentication.OAuth.OAuth2Provider := OAuth2Provider;
서버를 시작하기 전에 서버가 인증에 사용할 OAuth2 Provider를 구성해야 합니다. OAuth2 Provider를 구성하려면 RegisterProvider 메서드를 사용하십시오. 이 메서드에는 다음 매개변수가 있습니다.
예제: Azure AD를 구성하려면 OAuth2 URL에 추가되는 tenant-id와 ClientId, ClientSecret, Scope 및 CallbackURL이 필요합니다.
RegisterProvider(
'azure',
'90945b8d-f6b7-4b97-b2bd-21c3c90b5f3x',
'PN67Q~5m06c-~X_GMyMf9zMntmm5l2dt~3jVq',
'https://login.microsoftonline.com/a0ca2055-5dd1-467f-bf13-291f6fd715c6/oauth2/v2.0/authorize',
'https://login.microsoftonline.com/a0ca2055-5dd1-467f-bf13-291f6fd715c6/oauth2/v2.0/token',
'user.read',
'/login',
'https://localhost/callback'
);
기존 Provider를 삭제하려면 UnRegisterProvider 메서드를 사용하십시오.