使用JavaScript在AAD中自动创建新的App注册

时间:2018-05-17 15:03:25

标签: javascript microsoft-graph adal msal

我只想确保在遵循其他路径(分布式应用程序或多租户网站)之前无法执行以下操作。

我有一个web-app插件需要运行一些自动设置,比如在当前租户中创建新的App Registration,这反过来需要访问Microsoft Graph API,这需要使用Directory.ReadWrite进行现有的App Registration。等等。

我希望我可以使用我租户的多租户App注册。

但是,我似乎无法使用隐式授权流,因为重定向/回复URL未知(该插件已交付给数百名客户,每个客户可能拥有许多环境)。

该插件只能使用C#&但是,JS,C#部分是“孤立的”,所以它不能显示(web)表单。 ADAL和MSAL for .NET都无法打开登录窗口,因为它未在UserInteractive模式下运行。

我已经使用ADAL for JS,但它似乎不支持本机客户端(非Web RedirectURI)。

我还尝试使用MSAL for JS with https://login.microsoftonline.com/common/oauth2/nativeclient(登录成功,但是对话框因为JS失去对它的访问权限,跨域请求而挂起)和urn:ietf:wg:oauth:2.0:oob (登录后显示“打开应用程序”)。我在IE中禁用了“保护模式”。

由于

1 个答案:

答案 0 :(得分:0)

OAuth要求您拥有"已知目的地"也发送给用户。如果没有这个,通过劫持redirect_uri来创建一个中间人攻击太容易了,这样它就会指向一个恶意网站并在用户不知情的情况下捕获他们的令牌。

在多租户方案中使用授权码或隐式授权时,希望托管他们正在重定向的页面。您的站点会捕获他们需要的令牌,然后将其重定向回应用程序。

此工作流程的关键是在state参数中对最终目标进行编码。您的服务器接收令牌,从state参数解码最终指定,然后将它们重定向到该位置。