2017-08-04 58 views
7

Chúng tôi muốn sử dụng Azure AD B2C cho các ứng dụng web của chúng tôi để cho phép người dùng đăng nhập bằng tài khoản/mật khẩu 'địa phương' hoặc sử dụng tài khoản xã hội của họ (Facebook, v.v.) https://docs.microsoft.com/azure/active-directory-b2c/active-directory-b2c-overviewAzure AD B2C tích hợp với tài khoản doanh nghiệp (Azure?)

Tuy nhiên, trong ứng dụng này, chúng tôi có thể là tổ chức nhắm mục tiêu, vì vậy chúng tôi cũng muốn tích hợp với tài khoản công ty Azure AD hiện có của công ty. Bằng cách đó, người dùng không phải tạo tài khoản mới và có thể sử dụng tài khoản công ty hiện có của họ.

Nó chỉ ra rằng có một (mới) tượng địa lý trong Azure AD B2C cho phép bạn một cách rõ ràng liên kết đến một tài khoản AD Azure bên ngoài bằng cách sử dụng một chính sách tùy chỉnh như đã mô tả ở đây: https://docs.microsoft.com/azure/active-directory-b2c/active-directory-b2c-setup-aad-custom

Thật không may, đây chỉ hoạt động nếu chúng ta biết trước các công ty bên ngoài nào chúng ta cần liên kết và thêm vào cấu hình cụ thể. Nó cũng rò rỉ thông tin về người đang sử dụng ứng dụng, bởi vì tên công ty được liệt kê dưới dạng tùy chọn trên trang đăng nhập.

Tôi cũng đã xem xét các tính năng Azure AD B2B, nhưng tôi không nghĩ rằng điều này cũng phù hợp.

Điều chúng tôi thực sự muốn là cho Azure AD B2C cung cấp dấu hiệu chung cho tài khoản Microsoft (công ty), phát hiện xem địa chỉ email đó đã được xử lý trong bất kỳ hệ thống Azure AD nào chưa; nếu có, nó sẽ ủy quyền xác thực cho hệ thống đó, nhưng nếu không, nó sẽ quay trở lại tài khoản cục bộ Azure AD B2C.

Thông tin đăng nhập chung này đã hoạt động để truy cập vào các ứng dụng Microsoft chuẩn, chẳng hạn như các cổng của chúng. Có ai biết nếu điều này là có thể trong Azure AD B2C, hoặc có bất kỳ khoảng thời gian tiềm năng cho khi nó có thể trở thành có thể? Có bất kỳ hệ thống thay thế nào có thể cung cấp chức năng tương tự không?

Trả lời

3

Những gì bạn đang đề cập đến là có Azure AD trong multi-tenant mode, được thêm làm nhà cung cấp danh tính cho Azure AD B2C.

Từ: Multi-Tenant Azure AD Auth in Azure AD B2C with Custom Policies

Để hỗ trợ multi-tenant Azure AD, bạn sẽ cần phải cấu hình ClaimsProvider của bạn trong chính sách tùy chỉnh với các giá trị khác nhau.

Sử dụng các giá trị bên dưới, đảm bảo bạn thay thế bằng client_id và IdTokenAudience.

<Item Key="DiscoverMetadataByTokenIssuer">true</Item> 
<Item Key="ValidTokenIssuerPrefixes">https://sts.windows.net/</Item> 
<Item Key="authorization_endpoint">https://login.microsoftonline.com/common/oauth2/authorize</Item> 
<Item Key="client_id">df5b2515-a8d2-4d91-ab4f-eac6e1e416c2</Item> 
<Item Key="BearerTokenTransmissionMethod">AuthorizationHeader</Item> 
<Item Key="scope">openid</Item> 
<Item Key="UsePolicyInRedirectUri">false</Item> 
<Item Key="HttpBinding">POST</Item> 
<Item Key="response_types">id_token</Item> 
<Item Key="IdTokenAudience">df5b2515-a8d2-4d91-ab4f-eac6e1e416c2</Item> 

LƯU Ý: Chức năng này không phải là chính thức ngay cả trong bản xem trước, vì vậy sử dụng một cách thận trọng. Tiếp tục theo dõi tài liệu chính thức của "Sign in by using Azure AD accounts" để xem khi nào tài liệu này được tài liệu và hỗ trợ đầy đủ.

EDIT: Hãy chắc chắn rằng bạn lật Multi-tenanted chuyển đổi trong cài đặt của ứng dụng, nếu không bạn sẽ nhận được lỗi sau:

AADSTS70001: Application with identifier '(guid)' was not found in the directory (our company's primary domain)

+0

Thật không may, điều này dường như không hoạt động. Tôi nhận được "Rất tiếc, nhưng chúng tôi đang gặp sự cố khi đăng nhập. Chúng tôi đã nhận được yêu cầu không hợp lệ". Tôi đã sử dụng cùng một client_id và idTokenAudience như tôi đã sử dụng cho một đối tượng thuê cụ thể. Có điều gì khác tôi cần phải cấu hình? –

+0

Đào sâu hơn, điều này chỉ định lỗi: "AADSTS70001: Ứng dụng có số nhận dạng '(guid)' không được tìm thấy trong thư mục (tên miền chính của công ty chúng tôi)". Trong quá trình thử nghiệm này, chúng tôi không đề cập đến tên miền chính chút nào. Tôi đang thử tất cả điều này với một đối tượng thuê thử nghiệm cho Azure B2C và một đối tượng thuê thử nghiệm khác cho người dùng tôi đang đăng nhập. Làm thế nào/tại sao điều này kết nối với miền chính của chúng tôi? Chúng ta có thể ép buộc ngắt kết nối ở đây không. Trên thực tế, chúng ta nên sử dụng client_id gì ở đây, bởi vì rõ ràng chúng ta không thể thêm ứng dụng của mình vào AD của mỗi đối tượng thuê đích như một khách hàng. –

+1

Có vẻ như bạn không lật công tắc "Đa người dùng" trong ứng dụng Azure AD bạn đang sử dụng trong nhà cung cấp xác nhận quyền sở hữu này. – Saca

1

Azure AD B2C không chính thức hỗ trợ đa người thuê nhà Azure AD sắc các nhà cung cấp. Bạn nên bỏ phiếu cho tính năng here để nó có thể giúp ưu tiên nó và để bạn có thể liên hệ khi tính năng này được xem trước.

Có một cách giải quyết tiềm năng nếu bạn có một nhóm người dùng Azure AD có giới hạn mà bạn làm việc cùng.Bạn có thể tạo một trang trong ứng dụng của mình nơi người dùng nhập vào địa chỉ email. Dựa trên địa chỉ email, bạn có thể sử dụng tham số domain_hint khi gọi Azure AD B2C để chuyển hướng chúng trực tiếp đến trang đăng nhập phù hợp.

+0

Vì vậy, giải pháp nào nếu bạn muốn có ứng dụng web dành cho người dùng nội bộ (AD bình thường) nhưng cũng cần xác thực người dùng khác bên ngoài công ty (người dùng Azure AD khác, tài khoản Microsoft và tài khoản Facebook, v.v.)? –

+0

Ý của bạn là ứng dụng nội bộ mà người dùng bên ngoài cũng có thể sử dụng? Nếu bạn muốn xây dựng một ứng dụng KHÁCH HÀNG mà cả nhân viên và khách hàng của bạn có thể đăng nhập, bạn nên sử dụng đối tượng thuê Azure AD B2C và thêm Azure AD làm IdP. Tuy nhiên, nếu đây là một ứng dụng được nhân viên và đối tác công ty sử dụng để cộng tác trong công việc, thì bạn nên sử dụng Azure AD và nhìn vào Azure AD B2B – Parakh

+0

OK, cảm ơn bạn. Tuy nhiên, nếu tôi muốn cho phép khách hàng có thể đăng nhập bằng Azure AD của họ và tôi có khách hàng/tổ chức không giới hạn, tôi không thể thêm từng người dùng theo cách thủ công theo cách thủ công. Chức năng cần thiết như trong Azure AD - ứng dụng cho nhiều người thuê ... –

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