Я генерирую токен авторизации для запуска наших тестов API, используя метод ниже.
/// <summary>
/// This method returns the Bearer token with User as a claim
/// </summary>
/// <param name="tenantId">Tenant Id for the environment in use</param>
/// <param name="userName">Email Id of the user</param>
/// <param name="password">Password of the user</param>
/// <returns>string with the complete Bearer token</returns>
public async Task<string> GetAccessTokenROPC(string tenantId, string userName, string password)
{
string tokenUrl = string.Concat("https://login.microsoftonline.com/", tenantId, "/oauth2/v2.0/token");
var req = new HttpRequestMessage(HttpMethod.Post, tokenUrl)
{
Content = new FormUrlEncodedContent(new Dictionary<string, string>
{
["client_id"] = this.utils.GetClientId(),
["scope"] = "user.read openid profile email offline_access",
["client_secret"] = this.utils.GetClientSecret(),
["username"] = userName,
["password"] = password,
["grant_type"] = "password"
})
};
Ответ успешно сгенерирован и имеет токен доступа с приведенными ниже претензиями.
Мой запрос состоит в том, какая часть кода в вышеупомянутом методе заботится об утверждении aud и как это установлено https://graph.microsoft.com?:
{
"aud": "https://graph.microsoft.com",
"iss": "https://sts.windows.net/fa774de7-cc34-4a2d-838f-b83fdexxxxxxx/",
"iat": 1558960514,
"nbf": 1558960514,
"exp": 1558964414,
"acct": 0,
"acr": "1",
"aio":
.
.
.
}