使用 JavaScript 在 AAD 中自动创建新的应用程序注册
Automated creation of new App Registrations in AAD using JavaScript
我只是想在我走另一条路(分布式应用程序或多租户网站)之前确保以下是不可能的。
我有一个网络应用程序插件需要 运行 一些自动化设置,例如在当前租户中创建新的应用程序注册,这反过来需要访问 Microsoft Graph API,它需要 Directory.ReadWrite.All 等
的现有应用程序注册
我希望我可以为此使用我自己的租户的多租户应用程序注册。
但是,我似乎无法使用隐式授权流程,因为 redirect/reply URL 是未知的(插件已交付给数百个客户,每个客户可能有很多环境).
该插件只能使用 C# & JS,但是,C# 部分是 'isolated',因此它不能显示 (web) 表单。
适用于 .NET 的 ADAL 和 MSAL 都无法打开登录名 window,因为它未 运行ning 在 UserInteractive 模式下。
我已经使用 ADAL for JS,但是,它似乎不支持本机客户端(非 Web RedirectURI)。
我也尝试过将 MSAL 用于 JS https://login.microsoftonline.com/common/oauth2/nativeclient(登录成功,但是对话框挂起,因为 JS 无法访问它,跨域请求)和 urn:ietf:wg:oauth:2.0:oob (登录后显示“打开应用程序”)。我在 IE 中禁用了 "protected mode"。
谢谢
OAuth 要求您也有一个 "known destination" 来发送给用户。否则,通过劫持 redirect_uri
使其指向恶意站点并在用户不知情的情况下捕获其令牌来创建中间人攻击就太容易了。
在多租户场景中使用授权码或隐式授权时,您也想托管他们被重定向的页面。您的站点捕获他们需要的令牌,然后将他们重定向回他们的应用程序。
此工作流程的关键是在 state
参数中对最终目的地进行编码。您的服务器接收令牌,从 state
参数解码最终指定,然后将它们重定向到该位置。
我只是想在我走另一条路(分布式应用程序或多租户网站)之前确保以下是不可能的。
我有一个网络应用程序插件需要 运行 一些自动化设置,例如在当前租户中创建新的应用程序注册,这反过来需要访问 Microsoft Graph API,它需要 Directory.ReadWrite.All 等
的现有应用程序注册我希望我可以为此使用我自己的租户的多租户应用程序注册。
但是,我似乎无法使用隐式授权流程,因为 redirect/reply URL 是未知的(插件已交付给数百个客户,每个客户可能有很多环境).
该插件只能使用 C# & JS,但是,C# 部分是 'isolated',因此它不能显示 (web) 表单。 适用于 .NET 的 ADAL 和 MSAL 都无法打开登录名 window,因为它未 运行ning 在 UserInteractive 模式下。
我已经使用 ADAL for JS,但是,它似乎不支持本机客户端(非 Web RedirectURI)。
我也尝试过将 MSAL 用于 JS https://login.microsoftonline.com/common/oauth2/nativeclient(登录成功,但是对话框挂起,因为 JS 无法访问它,跨域请求)和 urn:ietf:wg:oauth:2.0:oob (登录后显示“打开应用程序”)。我在 IE 中禁用了 "protected mode"。
谢谢
OAuth 要求您也有一个 "known destination" 来发送给用户。否则,通过劫持 redirect_uri
使其指向恶意站点并在用户不知情的情况下捕获其令牌来创建中间人攻击就太容易了。
在多租户场景中使用授权码或隐式授权时,您也想托管他们被重定向的页面。您的站点捕获他们需要的令牌,然后将他们重定向回他们的应用程序。
此工作流程的关键是在 state
参数中对最终目的地进行编码。您的服务器接收令牌,从 state
参数解码最终指定,然后将它们重定向到该位置。