Ukraine flag

We stand with our friends and colleagues in Ukraine. To support Ukraine in their time of need visit this page

> Office 365 (SSO) 2FA

Office 365 (SSO) 2FA

Решение двухфакторной аутентификации Protectimus поддерживает систему единого входа (SSO) инициированную поставщиком услуг — SP (Service Provider).

Это означает, что конечные пользователи будут входить в свои учетные записи непосредственно со страницы логина защищаемого ресурса. Когда конечный пользователь пытается войти в защищенный ресурс, запрос авторизации отправляется поставщику удостоверений Identity Provider (Protectimus). Как только Protectimus аутентифицирует личность пользователя, пользователь входит в свою учетную запись на защищенном ресурсе.

Схема взаимодействия On-Premise платформы Protectimus с Microsoft Office 365 через Keycloak представлена ниже. Office 365 two-factor authentication setup

1. Установите платформу Protectimus и задайте базовые настройки

  1. Установите Локальную платформу Protectimus.
  2. Создайте ресурс.
  3. Добавьте пользователей.
  4. Добавьте токены или активируйте Портал самообслуживания пользователей.
  5. Назначите токены пользователям.
  6. Назначте токены с пользователями на ресурс.

2. Синхронизируйте On-Premise AD с Azure AD

2.1. Откройте office.com

Admin -> Show all -> Azure Active Directory -> Custom domain names -> “Add custom domain”

В DNS создайте TXT запись, чтобы подтвердить добавление домена в Azure AD.

2.2. Скачайте и запустите Azure AD Connect

https://www.microsoft.com/en-us/download/details.aspx?id=47594

Continue -> Customize -> Install (No checked options) -> Password Hash Synchronization -> Next -> Connect to Azure AD:

username@[something].onmicrosoft.com pass:

Next -> Add Directory -> domain

Вы можете создать отдельный Organizational Unit (OU) для пользователей, учетные записи которых должны быть защищены двухфакторной аутентификацией, и настроить синхронизацию только для этого OU. У каждого пользователя в этом OU должен быть прописан адрес электронной почты, он будет использоваться в качестве имени пользователя UPN (User Principal Name).
  • Create new AD account
  • Enterprise ADMIN username: domain\Administrator
  • PASSWORD: пароль администратора Windows AD
(Пример заполнения представлен на рисунке ниже) ↓ Office 365 two-factor authentication setup with Protectimus - step 1

Next -> Next -> Sync Selected Domain Office 365 two-factor authentication setup with Protectimus - step 2

Next -> Next -> Next -> Exit.

3. Настройте Keycloak

3.1. Создайте Realm

Создайте Realm в Keycloack (Add Realm), например, с именем Office365.

3.2. Создайте User Federation

Создайте Mapper:
  • Name: saml.persistent.name.id.for.urn:federation:MicrosoftOnline
  • Mapper Type: user-attribute-ldap-mapper
  • User Model Attribute: saml.persistent.name.id.for.urn:federation:MicrosoftOnline
  • LDAP Attribute: objectGUID
  • Read Only: ON
  • Always Read Value from LDAP: ON
  • Is Mandatory in LDAP: OFF
  • Is Binary Attribute: OFF
Office 365 two-factor authentication setup with Protectimus - step 3

3.3. Создайте Клиента

  1. Для этого при создании необходимо импортировать этот файл:

    https://nexus.microsoftonline-p.com/federationmetadata/saml20/federationmetadata.xml

  2. ВНИМАНИЕ! Важно чтобы имя файла было: «urn:federation:MicrosoftOnline»
  3. Отредактируйте свойства клиента:
    • Client Signature Required – Disable
    • Signature Algorithm – “RSA_SHA1”
  4. Создайте Mapper для клиента “Add builtin” -> X500 email
    • Mapper: Name: IDPEmail
    • Mapper Type: User Property
    • Property: email
    • SAML Attribute Name: IDPEmail
    В качестве username будет использоваться email пользователя в Active Directory.
Office 365 two-factor authentication setup with Protectimus - step 4

4. Привяжите Office 365 к Keycloak

4.1. Получите сертификат SAML

Прежде всего, нужно получить сертификат SAML и проверить его, используя этот URL:

https://kc.dev.protectimus.com/auth/realms/[realm name]/protocol/saml/descriptor

Или проверьте сертификат с помощью соответствующей функции в интерфейсе — SAML key.

4.2. Установите необходимое ПО

  • Install-Module -Name AzureAD
  • Install-Module MSOnline
Если возникнет вопрос об установке NuGet и PSGallery — установите их тоже.

4.3. Привяжите Office 365 к Keycloak

Выполните следующий скрипт:
# get the public key certificate from keycloak
# https://kc.dev.protectimus.com/auth/realms/2608/protocol/saml/descriptor
# see X509Certificate
$cert="MIICoTCCAYkCBgF3Y+nVLjANBgkqhkiG9w0BAQsFADAUMRIwEAYDVQQDDAlvZmZpY2UzNjUwHhcNMjEwMjAyMTgwMTQ0WhcNMzEwMjAyMTgwMzI0WjAUMRIwEAYDVQQDDAlvZmZpY2UzNjUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3eE+GuP2ubqH0C2sceb1iBsPr5LNIK0dtW67CQPL2tLM0YlRAFXu2sWRMKwPl8ZULvMzufA855j0Chd5KX1izVi8c6fclqge+OB9iMB05Ew/zGb8zmCXETgVU9+lsQFchd8M/I/i0QKKOatIbP50t9SKJI5daX78wb/IVk2pexB76cqXaQrrddh9ksXo3OFyFpAk1xlCC9Nu77QLCPWK4fBnSEbnzxDP3ZMhPXMQsn3MbD1SHGmHmJ93wMeXFGGIU77aDI/uAYZj1tb7dj/aICqG8RpUVXEolf8BDH/nT2TonYSmMaSqd99wCNJaKJWpyPd2qid7118DtOyPzZza/AgMBAAEwDQYJKoZIhvcNAQELBQADggEBAFglY4CdTJkGTL7/YUY1uBhSTSGvtbv6GiQ+2Uox3JVNVECB1Za63mUU1tTC/r4Jp02jRnTtBfSR7Sra+HDIKgAOkwcVTh2P++i1bk7PiY1Rb2ePrBtXWnb0GC8qCLAOK7b2/y9E1K5Wjg2Qg1dxnNZFys8CLpHkkYwMwChJA6E8DMg/bWUYfighBo4mAUpORAwqkmEB2mC39VbWZAUyBysQ5Cb9xK8RWnOgj7XhZfhpihK815z+uwirQjOFmGhWs2Mxk9PHkPkCFeWdcGGoRPvBuVYaG5/MrWu5hqQFtiu4ZDsySEnBdUqfudD6Iorc6QHVYf6VCunSIdE9L9sIovs="

$uri="https://kc.dev.protectimus.com/auth/realms/Office365/protocol/saml"
$issuer_uri="https://kc.dev.protectimus.com/auth/realms/Office365"
$dom="yourdomain.com"

$cred = Get-Credential
Connect-MsolService -Credential $cred

Set-MsolDomainAuthentication -DomainName $dom  -Authentication Federated -ActiveLogOnUri $uri -SigningCertificate $cert -PassiveLogOnUri $uri -IssuerUri $issuer_uri -LogOffUri $uri -PreferredAuthenticationProtocol SAMLP

Проверить привязку можно следующим образом:
Get-MsolDomainFederationSettings -DomainName domain.name

4.4. Отвязка Office 365 от Keycloak

Выполните следующий скрипт:
$dom="yourdomain.com"
Set-MsolDomainAuthentication -DomainName $dom -Authentication managed

Все готово, откройте office365.com и попробуйте войти в систему под учетной записью из AD.
Last updated on 2022-09-15