如何模拟登录用户来管理其他 Azure 服务
How to impersonate logged in user to manage other Azure service
我有 webapp 可以在 ADF 中进行更改(类似于在 ADF 中部署对象)。我想根据 ADF 对用户进行身份验证。我能够检测到谁在访问网络应用程序。我得到 Azure AD Id,如 user1@company.com。我想验证同一用户是否有权访问 ADF,如果是,则生成不记名令牌以在 ADF 中进行更改(使用 rest api)或使用 SDK。
当用户登录web应用时,您可以使用下面的方式获取访问令牌,无需验证同一用户是否可以访问ADF,因为如果他没有访问权限,令牌将无法调用其余 api,他将得到 401 未经授权的错误。
1.First,确保你有 configured your web app to use Azure AD login, then navigate to the resource explorer -> 找到你的网络应用程序 -> 将 ["resource=https://management.azure.com"]
添加到 additionalLoginParams
,如下所示 -> PUT
。
2.Navigate到门户中的Azure Active Directory
-> App registrations
-> 找到你的web app对应的AD App -> API permissions
-> 添加权限user_impersonation
的 Azure Service Management
如下所示。
3.Then当用户登录web app,在他同意权限后,你可以得到端点为https://webappname.azurewebsites.net/.auth/me
的token,并使用token调用data factory rest api。
4.Make 确保用户具有 RBAC 角色,例如Contributor
在你的 subscription/ADF 中,然后令牌将能够成功调用其余的 api。
例如,我用 Pipelines - List By Factory
api 测试,它工作正常。
我有 webapp 可以在 ADF 中进行更改(类似于在 ADF 中部署对象)。我想根据 ADF 对用户进行身份验证。我能够检测到谁在访问网络应用程序。我得到 Azure AD Id,如 user1@company.com。我想验证同一用户是否有权访问 ADF,如果是,则生成不记名令牌以在 ADF 中进行更改(使用 rest api)或使用 SDK。
当用户登录web应用时,您可以使用下面的方式获取访问令牌,无需验证同一用户是否可以访问ADF,因为如果他没有访问权限,令牌将无法调用其余 api,他将得到 401 未经授权的错误。
1.First,确保你有 configured your web app to use Azure AD login, then navigate to the resource explorer -> 找到你的网络应用程序 -> 将 ["resource=https://management.azure.com"]
添加到 additionalLoginParams
,如下所示 -> PUT
。
2.Navigate到门户中的Azure Active Directory
-> App registrations
-> 找到你的web app对应的AD App -> API permissions
-> 添加权限user_impersonation
的 Azure Service Management
如下所示。
3.Then当用户登录web app,在他同意权限后,你可以得到端点为https://webappname.azurewebsites.net/.auth/me
的token,并使用token调用data factory rest api。
4.Make 确保用户具有 RBAC 角色,例如Contributor
在你的 subscription/ADF 中,然后令牌将能够成功调用其余的 api。
例如,我用 Pipelines - List By Factory
api 测试,它工作正常。