小编Ric*_*tam的帖子

将WebApp授权给ADFS以访问Dynamics CRM Web API

我有一个需要与Dynamic CRM 365 Web API对话的Web应用程序.动态CRM在ADFS上配置为依赖方.服务器是Windows Server 2016,一切都是内部部署,而不是Azure.

我为获取有效令牌所做的工作如下:

1)在ADFS中,转到应用程序组并添加新的服务器应用程序,获取ClientID并为我的Web应用程序生成客户机密钥.

在此输入图像描述

2)在Active Directory中添加新的用户webAppUser

3)在CRM中使用应用程序ID 将此用户添加为应用程序用户 ID,这是我在将Web应用程序注册到ADFS时之前获得的ClientID.还创建了一个具有实体帐户完全权限的新角色,并将此角色分配给此应用程序用户

4)我正在使用以下代码来检索承载令牌并将其添加到我的HttpClient Authorization标头中.

public class CrmWebApiClient
{
    private HttpClient _httpClient;

    public CrmWebApiClient()
    {
        _httpClient = new HttpClient();
        _httpClient.BaseAddress = new Uri("https://crmbaseaddress.com");            
    }

    internal async Task Initialize()
    {
        try
        {               
            var authority = "https://adfsServerUrl/adfs/";
            var authContext = new AuthenticationContext(authority,false);
            var credentials = new ClientCredential(clientID,clientSecret);

            var authResult = await authContext.AcquireTokenAsync("https://crmbaseaddress.com", credentials);

            _httpClient.DefaultRequestHeaders.Authorization =
                new AuthenticationHeaderValue("Bearer", authResult.AccessToken);
        }
        catch (Exception ex)
        {
            var error = ex;
        } …
Run Code Online (Sandbox Code Playgroud)

authorization adfs token dynamics-crm dynamics-365

14
推荐指数
1
解决办法
2070
查看次数

标签 统计

adfs ×1

authorization ×1

dynamics-365 ×1

dynamics-crm ×1

token ×1