oauth-2.0 - oAuth with Microsoft Azure AD with azure GUEST 帐户与员工帐户
问题描述
我在 ASP.NET Core 3.1 web mvc 应用程序中设置 OIDC。我已经为我们的员工设置了“OpenIdConnect”,通过
“权威”:“https://login.microsoftonline.com/{0}/v2.0”
其中 {0} 是公司名称 .onmicrosoft.com(或公司名称是tenantId)-> 这很好用。
我们的 AD/ADFS 中有 Azure GUEST 帐户,但上述权限不适用于这些帐户。即我的 bob@gmail 帐户在 Azure AD 中设置为来宾帐户。我已经读过它应该针对 companyname.onmicrosoft.com 但是我可以使用访客访问权限登录的唯一方法是使用权限
“权威”:“ https://login.microsoftonline.com/common/v2.0 ”
在授权 url 中使用common我可以登录到我的应用程序。这也意味着我必须在用户登录之前知道什么类型的身份验证员工或访客帐户(即不同的按钮使用户在执行身份验证类型之间进行选择)......这不太理想。
我想为员工和来宾用户使用相同的权限..这可能吗?
如果我使用“Authority”:“https://login.microsoftonline.com/{0}/v2.0”> 其中 {0} 是租户 mycompany.onmicrosoft.com 并尝试使用我的 bob@gmail AD GUEST 登录帐户失败,我收到此错误...(有趣的是,即使 bob@gmail 是 AD 访客帐户,redirect_uri 的使用方式也很常见
即使我使用的是“Authority”,但这里对 common 的引用很感兴趣:“https://login.microsoftonline.com/{0}/v2.0”> 其中 {0} 是租户 mycompany.onmicrosoft.com
解决方案
来宾用户仅与特定租户相关,因此我们需要提供租户 id 而不是 common。当前 Azure AD B2B 通用终结点不能用于来宾用户,来宾用户被视为个人帐户。
推荐阅读
- c# - 异步调用已在进行中。必须先完成或取消才能调用此方法
- react-styleguidist - react-styleguidist 配置子组件文档,例如“Form.Item”
- mongodb - 如何将此 MYSQL 查询写入 Mongodb?
- javascript - 从 javascript 对象中获取编码内容并将其显示在 pug 上,如何?
- rss - 如何通过插件处理 Thunderbird 中的提要文件夹?
- python - 禁止 argaparse 生成的“帮助”文本中的重复条目
- git - 如何挑选从 repo1 到 repo2 的提交
- javascript - 字符串太长时如何使字体变小?
- c# - 在 C# 中从控制台应用程序播放声音
- javascript - Angular 如何在不更改 URL 的情况下使用参数进行路由