У меня есть тестовый идентификатор пользователя test@gollahalliauth.onmicrosoft.com
(без глобальных прав администратора), и я пытаюсь получить доступ к Graph API для Azure AD.
Попробуйте 1 (успех)
Я использовал Azure AD Graph Explorer , вошел в систему с test@gollahalliauth.onmicrosoft.com
и использовал API https://graph.windows.net/gollahalliauth.onmicrosoft.com/users/test@gollahalliauth.onmicrosoft.com
для получения содержимого. Я смог сделать это без каких-либо проблем.
Попробуйте 2 (Fail)
Я написал программу Go с политикой редактирования профиля
import (
"crypto/rand"
"encoding/base64"
"fmt"
"golang.org/x/oauth2"
"os"
)
const AuthDomainName string = "https://gollahalliauth.b2clogin.com/gollahalliauth.onmicrosoft.com/oauth2/v2.0"
func main() {
conf := &oauth2.Config{
ClientID: os.Getenv("clientID"),
ClientSecret: os.Getenv("clientSecret"),
RedirectURL: "http://localhost:8080/callback",
Scopes: append([]string{"openid", "profile"}),
Endpoint: oauth2.Endpoint{
AuthURL: AuthDomainName + "/authorize?p=b2c_1_gollahalli_edit",
TokenURL: AuthDomainName + "/token?p=b2c_1_gollahalli_edit",
},
}
// Generate random state
b := make([]byte, 32)
rand.Read(b)
state := base64.StdEncoding.EncodeToString(b)
parms := oauth2.SetAuthURLParam("response_type", "id_token")
url := conf.AuthCodeURL(state, parms)
fmt.Println("AUth URL:",url)
}
Это создает аутентификационный URL для получения токена. Я использовал id_token
для доступа к API графа, используя Authorization: Barer id_token
, и я получаю ошибку как
{
"odata.error": {
"code": "Authentication_ExpiredToken",
"message": {
"lang": "en",
"value": "Your access token has expired. Please renew it before submitting the request."
}
}
}
Попробуйте 3 (Fail)
Я попытался добавить User.Read
в Azure AD B2C > Applications >
<application name> > Published scopes
и использовал полный URL-адрес области, и теперь я получаю ошибку как Error: AADB2C90205: This application does not have sufficient permissions against this web resource to perform the operation.
Я не уверен, в чем здесь проблема. Есть идеи, как это преодолеть?