使用邮递员

时间:2017-06-25 00:23:39

标签: api azure dynamics-crm aws-lambda adal

我是Azure AD的新手。我已阅读Azure AD文档,该文档提供有关身份验证和访问Web API的信息。

我想做什么:我想使用Dynamics CRM API通过AWS Lambda创建潜在客户或联系人。这意味着,每当运行Lambda函数时,它都应该调用CRM API。我需要创建潜在客户的方式是使用Lambda中包含的用户名和密码。当我使用AWS Lambda作为访问web api的源时,我不确定我需要使用哪种应用场景。我想用POST请求传递用户信用。

在Azure AD中创建应用程序:所以,我不确定我需要使用哪种应用程序类型(Web API或Native App?)。登录URL或重定向URI应该是什么?

我尝试创建一个应用程序并使用Postman作为临时方式来测试我是否可以获取访问令牌并访问web api。我能够获得访问令牌,但当我尝试访问API时,它说

Bearer Error invalid_token, error validating token!

我在Azure AD中创建应用程序以获取足够的权限以访问Dynamics CRM API。但仍然无法访问API。

通过邮递员获取访问令牌的POST请求

request: POST
URL: https://login.windows.net/<tenant-id>/oauth2/token
Body:
grant_type: cliet_credentials
username: xxxxx
password: xxxxxxx
client_id: <app id>
resource: <resource> //I am not sure what to include here
client_secret: <secret_key>

我在响应中获得了访问令牌。使用访问令牌发送第二个POST请求

request: POST
URL: https://xxx.api.crm.dynamics.com/api/data/v8.2/accounts

Headers:
Content-type: application/json
OData-MaxVersion: 4.0
OData-Version: 4.0
Authorization: Bearer <access_token>

Body:
{
    "name": "Sample Account",
    "creditonhold": false,
    "address1_latitude": 47.639583,
    "description": "This is the description of the sample account",
    "revenue": 5000000,
    "accountcategorycode": 1
}

如果我可以获得有关我被困的地方的更多信息,这对我有帮助。我已经用了一周的时间来完成这项工作。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

要执行服务器到服务器(S2S)身份验证,应用程序将根据Azure AD对象ID值标识的服务主体进行身份验证,该值存储在Dynamics 365应用程序用户记录中。请点击herehere了解详细步骤和代码示例。