Успях да направя единично влизане в Azure Active Directory с междинен софтуер OpenIdConnect:
app.UseOpenIdConnectAuthentication(
new OpenIdConnectAuthenticationOptions
{
AuthenticationMode = AuthenticationMode.Passive,
ClientId = "{guid}",
Authority = "https://login.microsoftonline.com/common/",
TokenValidationParameters = new TokenValidationParameters
{
ValidateIssuer = false
}
});
Използваме приложение с множество клиенти на Azure и въз основа на tenantid
на върнатия токен проверяваме дали този потребител е разрешен (проверете tenantid
от нашата база данни дали идва от нашите доверени клиенти).
Работи перфектно, ако клиентът иска да направи единично влизане с нашето приложение. Те трябва да синхронизират своите потребители с azure активна директория и да конфигурират своите tenantid
в нашето приложение.
Работата е там, че приемете, че някои клиенти действително имат Office 365. Те вече синхронизират фирмените си потребителски акаунти с Office 365 и биха искали да се възползват от потребителските акаунти в Office 365 и да направят единично влизане с това.
Знам, че Office 365 е изграден върху Azure и мога да конфигурирам така, че приложението ни да работи с фирмените потребителски акаунти, като получа office 365 tenantid
(начина, по който получих от отстраняване на грешки в кода):
Но едно нещо не съм сигурен е, че Office 365 tenantid
ще бъде различен между компаниите, нали, например: и компания А, и компания Б използват Office 365, така че офис 365 tenantid
е различен между компания А и компания Б?
Ако да, как да получите tenantid
от Office 365 (без отстраняване на грешки, както направих аз).
Също така, моля, уведомете дали този начин не работи с Office 365 Single Sign On.