TsgcHTTP_OAuth2_Server_Provider

此组件允许您集成外部 OAuth2 提供商(如 Azure AD、Google、Facebook)。

简介

此组件允许您在服务器组件(如 HTTP 服务器)中集成外部 OAuth2 提供商(如 Azure AD、Google、Facebook 等),从而使用户可以通过 Azure AD 凭据登录,若验证成功,HTTP 服务器可提供对受保护资源的访问。

 

服务器组件有一个名为 Authorization.OAuth.OAuth2Provider 的属性,您可以在其中分配 TsgcHTTP_OAuth2_Server_Provider 的实例,因此如果启用了身份验证且 OAuh2Provider 属性附加到 OAuth2 提供程序服务器组件,则 WebSocket 和 HTTP 请求需要 Cookie/承载令牌才能被处理,否则连接将自动关闭。


    OAuth2Provider := TsgcHTTP_OAuth2_Server_Provider.Create(nil);
    Server.Authentication.Enabled := True;
    Server.Authentication.OAuth.OAuth2Provider := OAuth2Provider;

 

注册 OAuth2 提供商

在启动服务器之前,必须配置服务器将用于身份验证的 OAuth2 提供程序。使用 RegisterProvider 方法配置 OAuth2 提供程序,此方法具有以下参数:

 

 

示例:要配置 Azure AD,需要一个租户 ID,该 ID 被添加到 OAuth2 URL 中,还需要 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'
);

 

要删除现有提供商,请使用方法 UnRegisterProvider

参考

指南