2017-08-04 33 views
7

Chcielibyśmy używać Azure AD B2C dla naszych aplikacji internetowych, aby umożliwić użytkownikom logowanie się przy użyciu "lokalnego" konta/hasła lub korzystanie z ich kont społecznościowych (Facebook, itp). https://docs.microsoft.com/azure/active-directory-b2c/active-directory-b2c-overviewAzure AD B2C integrujący się z korporacyjnymi kontami AD (Azure?)

Jednak w tym wniosku prawdopodobnie będziemy kierować reklamy na organizacje, dlatego chcielibyśmy również zintegrować je z istniejącymi kontami korporacyjnymi Azure AD firmy. W ten sposób użytkownik nie musi tworzyć nowego konta i może korzystać z istniejącego konta firmowego.

Okazuje się, że istnieje (nowy) funkcja ciągu Azure AD B2C który pozwala wyraźnie odwołuje się do zewnętrznego Azure konta AD stosując niestandardowe zasady jak opisano tutaj: https://docs.microsoft.com/azure/active-directory-b2c/active-directory-b2c-setup-aad-custom

Niestety, to tylko prace jeśli wiemy z wyprzedzeniem, z którymi firmami zewnętrznymi musimy się połączyć i dodać konkretną konfigurację. Pobiera również informacje o tym, kto używa aplikacji, ponieważ nazwy firm są wymienione jako opcje na stronie logowania.

Przyjrzałem się także funkcjom B2B Azure AD, ale nie sądzę, aby pasowało to odpowiednio.

Chcemy, aby usługa Azure AD B2C oferowała ogólne logowanie do (korporacyjnego) konta Microsoft ", które wykrywa, czy ten adres e-mail jest już obsługiwany w ramach dowolnych systemów AD Azure; jeśli tak, deleguje uwierzytelnianie do tego systemu, ale jeśli nie, to wróci do konta lokalnego Azure AD B2C.

To ogólne hasło umożliwia już dostęp do standardowych aplikacji firmy Microsoft, takich jak ich portale. Czy ktokolwiek wie, czy jest to możliwe na platformie Azure AD B2C, czy może mieć jakąś potencjalną skalę czasową, w której stanie się to możliwe? Czy istnieją alternatywne systemy, które mogą oferować podobną funkcjonalność?

Odpowiedz

3

To, co masz na myśli, to posiadanie usługi Azure AD pod numerem multi-tenant mode, dodanej jako dostawca tożsamości do platformy Azure AD B2C.

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

W celu wspierania multi-tenant Azure AD, musisz skonfigurować ClaimsProvider w polityce niestandardowej z różnymi wartościami.

Użyj poniższych wartości, zwracając uwagę na id_klienta i 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> 

UWAGA: Ta funkcjonalność nie jest jeszcze oficjalnie jeszcze w podglądzie, więc należy używać z rozwagą. Monitoruj oficjalną dokumentację, aby zobaczyć, kiedy jest ona w pełni udokumentowana i obsługiwana.

EDIT: Upewnij się przerzucić przełącznik w ustawieniach aplikacji Multi-tenanted, inaczej dostaniesz następujący błąd:

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

+0

Niestety, to nie działa. Otrzymuję komunikat "Przepraszamy, ale mamy problem z zalogowaniem się. Otrzymaliśmy złą prośbę". Użyłem tego samego id_klienta i idTokenAudience, co w przypadku konkretnego dzierżawcy. Czy jest coś jeszcze, co powinienem skonfigurować? –

+0

Kopiąc dalej, określa to błąd: "AADSTS70001: Aplikacja z identyfikatorem" (guid) "nie została znaleziona w katalogu (główna domena naszej firmy)". Podczas tych testów nie odnosimy się w ogóle do domeny podstawowej. Próbuję to wszystko z testowym dzierżawcą dla platformy Azure B2C i innym testowym dzierżawcą dla zalogowanego użytkownika. Jak/dlaczego to się łączy z naszą domeną podstawową? Czy możemy wymusić tutaj rozłączenie. W rzeczywistości, jakiego klienta powinien używać tutaj, ponieważ oczywiście nie możemy dodać naszej aplikacji do każdego AD docelowego klienta jako klienta. –

+1

Wygląda na to, że nie przełączyłeś przełącznika "Wielu dzierżawionych" w aplikacji Azure AD, której używasz w tym dostawcy roszczeń. – Saca

1

Azure AD B2C oficjalnie nie obsługuje multi-tenant tożsamość Azure AD dostawca. Powinieneś zagłosować na funkcję here, aby ułatwić ustalenie priorytetu i umożliwić kontakt, gdy funkcja jest w podglądzie.

Istnieje potencjalne obejście, jeśli masz ograniczony zestaw dzierżawców usług Azure AD, z którymi współpracujesz.Możesz utworzyć stronę w aplikacji, w której użytkownik wpisuje adres e-mail. Na podstawie adresu e-mail można użyć parametru domain_hint podczas wywoływania usługi Azure AD B2C w celu przekierowania ich bezpośrednio na prawą stronę logowania.

+0

Więc jakie jest rozwiązanie, jeśli chcesz mieć swoją aplikację internetową dla wewnętrznych użytkowników firmy (zwykłe AD), ale także musisz uwierzytelniać innych użytkowników spoza firmy (inni najemcy Azure AD, konta Microsoft, konta na Facebooku itp.)? –

+0

Co to znaczy, że jest to wewnętrzna aplikacja, z której mogą korzystać także użytkownicy zewnętrzni? Jeśli chcesz zbudować aplikację KLIENTA, do której mogą się logować zarówno Twoi pracownicy, jak i klienci, powinieneś skorzystać z najemcy Azure AD B2C i dodać usługę Azure AD jako dostawcę tożsamości. Jeśli jednak jest to aplikacja używana przez pracowników i partnerów firmy do współpracy przy pracy, należy użyć usługi Azure AD i sprawdzić w usłudze Azure AD B2B – Parakh

+0

OK, dziękuję. Jeśli jednak chcę umożliwić klientom logowanie przy użyciu usługi Azure AD, a ja mam nieograniczoną liczbę klientów/organizacji, nie mogę ręcznie dodać każdego z nich jako dostawcy ręcznie. Potrzebna funkcjonalność jak w Azure AD - aplikacja multi najemca ... –