2017-08-09 16 views
15

Tôi đã triển khai thành công MSAL JS cho Azure AD B2C. Bước tiếp theo là cho phép người dùng chỉnh sửa hồ sơ của họ. Tôi đã tạo chính sách mới cho Chỉnh sửa tiểu sử. Nhưng cách chuyển hướng người dùng ở đó? Chỉ có phương thức đăng nhập/có phương thức mã thông báo. Tôi đã cố gắng thiết lập quyền hạn cho một chính sách khác. Sau đó nó chuyển hướng đến đúng trang, nhưng sau đó nó bắt đầu phàn nàn về lỗi trong phạm vi, và nó messes lên các mã thông báo cục bộ.Azure MSAL JS: Cách chỉnh sửa hồ sơ?

editProfile() { 
    this.userAgentApp.authority = this.policyEditProfile; 
    this.userAgentApp.loginRedirect(); 
} 

Mã ví dụ ASP.NET một cách rõ ràng có một tùy chọn để thiết lập các chính sách editProfile ID: https://docs.microsoft.com/en-gb/azure/active-directory-b2c/active-directory-b2c-devquickstarts-web-dotnet-susi#update-code-to-use-your-tenant-and-policies

Cảm thấy như thế này là mất tích từ MSAL.JS và tôi phải tự thủ URL, đó là đúng ?

Trả lời

6

Có, điều này là chính xác. Bạn sẽ cần phải sử dụng một cơ quan khác nhau mà URL bao gồm người thuê nhà và tên chính sách, như here:

private static string Tenant = "yourTenant.onmicrosoft.com"; 
public static string PolicySignUpSignIn = "b2c_1_susi"; 
public static string PolicyEditProfile = "b2c_1_edit_profile"; 
private static string BaseAuthority = "https://login.microsoftonline.com/tfp/{tenant}/{policy}/oauth2/v2.0/authorize"; 
public static string Authority = BaseAuthority.Replace("{tenant}", Tenant).Replace("{policy}", PolicySignUpSignIn); 
public static string AuthorityEditProfile = BaseAuthority.Replace("{tenant}", Tenant).Replace("{policy}", PolicyEditProfile); 

BTW, mẫu mà, mặc dù đối với .NET Desktop cho thấy làm thế nào để sử dụng chỉnh sửa hồ sơđặt lại mật khẩu chính sách: active-directory-b2c-dotnet-desktop, xem đặc biệt là phương pháp EditProfileButton_Click, các yếu tố của việc mua token (tương tác) sẽ kích hoạt hộp thoại để chỉnh sửa hồ sơ cá nhân:

AuthenticationResult authResult = await App.PublicClientApp.AcquireTokenAsync(App.ApiScopes, GetUserByPolicy(App.PublicClientApp.Users, App.PolicyEditProfile), UIBehavior.SelectAccount, string.Empty, null, App.AuthorityEditProfile); 
+0

Cảm ơn cho điều này! Tôi đã thử nó trong MSAL.JS, nhưng sau đó tôi nhận được ngoại lệ này? this.userAgentApp.acquireTokenPopup (authSettings.scopes, this.policyEditProfile) .Sau đó ((accessToken) => { this.setAuthenticated (accessToken); }, (lỗi) => { console.error (lỗi); }) AADB2C90055: Phạm vi 'hồ sơ mở' được cung cấp theo yêu cầu phải chỉ định tài nguyên, chẳng hạn như 'https://example.com/calendar.read'. Correlation ID: 8a022666-3400-4d7d-a847-f8dc4dc49452 Timestamp: 2017/08/13 23: 42: 10Z :. Invalid_request – Boland

+0

Tôi đang sử dụng phạm vi tương tự như khi đăng nhập Tại sao tôi cần khác phạm vi để chỉnh sửa hồ sơ? – Boland

Các vấn đề liên quan