azure - Azure AD 多租户 SaaS 应用程序的租户特定主页 URL
问题描述
我在 Azure 中注册了一个多租户 SaaS 应用程序。
而且,每个租户都有自己的子域来访问我的 Web 应用程序(Angular/.NET Core)。类似somecompany.myapp.com,anothercompany.myapp.com
请注意,身份验证是通过 MSAL(带有 PKCE 的 OIDC 授权代码流)进行的。
现在我需要在租户的 Office 365 门户中显示我的应用程序。
但是, 如何为租户配置“主页 URL”(或任何其他最佳方式),以便在单击应用程序时将用户重定向到租户的正确 URL?
或者,有什么方法可以将 Azure TenantID 作为主页 URL 的参数,以便我可以设置一个通用端点来将用户重定向到正确的子域?
不幸的是,我找不到任何类似的问题或有关此问题的任何文章。
解决方案
• 确保应用程序的App ID URI 是全球唯一的。App ID URI 是在协议消息中标识应用程序的方式之一,并且通过要求 App ID URI 具有与 Azure AD 租户的已验证域匹配的主机名来强制执行全局唯一性。因此,如果子域是“abc.company.com”,那么有效的应用 URI 将是“https://abc.company.com/myapp”</p>
• 对于多租户应用程序,应用程序不知道用户来自哪个租户,因此您无法向租户的端点发送请求。而是将请求发送到跨所有 Azure AD 租户多路复用的端点:“https://login.microsoftonline.com/common”</p>
• 当Microsoft 标识平台收到/common 端点上的请求时,它会登录用户,从而发现用户来自哪个租户。/common 终结点适用于 Azure AD 支持的所有身份验证协议:OpenID Connect、OAuth 2.0、SAML 2.0 和 WS-Federation。
• 因此,您指定的路径必须是根域 URL 的子域路径。例如,如果根域 URL 是https://apps.company.com/myapp/,子域是 'abc.company.com',那么您配置的主页 URL 必须以 'https:/ 开头/apps.company.com/myapp/',因为应用程序已在根域中的 Azure AD 中注册。
请找到以下链接以获取更多信息:-
https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-convert-app-to-be-multi-tenant
推荐阅读
- node.js - “.node-version”文件的格式应该是什么,我应该把它放在哪里?
- ios - 在 Swift 上推送通知
- sql - 动态将动态查询结果集插入临时表
- android - 一个一个地为每个 EditText 设置动画
- python - 使用 etree E-factory 将 xml 命名空间属性添加到元素
- c# - Selenium/Webdriver 跟踪页面移动
- c# - 多选列表框项目返回 system.windows.controls.listboxitem:与 listboxitem 值
- r - 如果我提供了错误命名的参数,则触发一个有用的错误
- python - 如何将 json 文件中的缺失值替换为数据框?
- javascript - MultiLineComment 的实现是否错误?