如何使用 Azure AD 和我们的后端 Strapi 设置 SSO?

Mik*_*ike 4 azure-active-directory strapi

我想知道以前是否有人这样做过,

我有一个天蓝色的 Active Directory,我在 IIS 中托管我们应用程序的前端。后面由pm2控制。如何使用 Azure AD 和我们的后端 Strapi 设置 SSO?

感谢您的任何帮助

fib*_*lan 9

Strapi 原生支持 Microsoft SSO。

您必须在三个方面采取行动:Azure 门户、Strapi 管理员、前端应用

1 - AZURE 门户:(创建应用程序、配置、获取参数)

1.1创建应用程序,进入应用程序注册站点并注册一个应用程序

1.2点击新注册

1.3填写表格如下图所示

在此处输入图片说明

1.3.1在“Supported account types”中设置Multitenant选项(在trapi中,默认不支持单租户,如果需要设置单租户必须创建自定义provider,但多租户就可以了)

1.3.2在重定向 URI 字段中,输入“Web”和

/连接/微软/回调

(i.e. http://localhost:1337/connect/microsoft/callback or your strapi
production url https://mystrapiexample.com/connect/microsoft/callback)
Run Code Online (Sandbox Code Playgroud)

1.3.3注册并进入下一页

1.4转到您注册应用程序的“身份验证”页面(左侧菜单)以启用隐式授权流程(访问令牌)

启用隐式授权流程

1.5到你注​​册的App的“Certificate and secrets”页面(左侧菜单)创建一个“New client secret”并标注值,当你在trapi上配置provider时会用到。

1.6还要注意Overview页面中的“Application (client) ID”,在trapi上配置provider时会用到

2 - STRAPI ADMIN:(创建应用程序,配置,获取参数)

2.1转到“角色和权限”> 提供商> Microsoft

2.2设置启用“ON”和您在前面的步骤(1.5 和 1.6)中获得的 clientId 和机密

2.3到你的前端应用的重定向URI,它获取和重定向microsoft access_code(这一步稍后会更清楚)

在此处输入图片说明

3 - 前端应用程序:

准备好?此时流程开始,开始跳转以完成身份验证并获取一个带 jwt 以作为经过身份验证的用户发出请求。

3.1在你的前端应用程序中创建一个链接来登录微软登录

/连接/微软

(i.e. http://localhost:1337/connect/microsoft or your strapi
production url https://mystrapiexample.com/connect/microsoft)
Run Code Online (Sandbox Code Playgroud)

3.2 Strapi 将用户重定向到 microsoft 身份验证页面,成功后用户将使用 microsoft access_code 重定向到 Strapi(这一步对您来说是透明的)

3.3 Strapi 将access_code 重定向到2.3 中设置的frontend url,必须重定向(with access_code)到trapi page auth

/auth/微软/回调

(i.e http://localhost:1337/auth/microsoft/callback or your strapi
production url https://mystrapiexample.com/auth/microsoft/callback ).....
Run Code Online (Sandbox Code Playgroud)

3.4此时,trapi 创建了自己的 JWT 令牌,该令牌返回到前端应用程序,前端应用程序可以将其存储(在 localstorage、会话存储...中)以向 Strapi 端点发出请求。

参考