Přihlašování bez hesla (Password-less sign-in)

Jen si zde odložím screenshoty k aktivaci a používání nedávno oznámeného přihlašování bez hesla od Microsoftu.

Podstatné je mít na mysli:

  • Tento způsob přihlašování je výchozí, a přebíjí tedy např. přihlašování přes ADFS (!)
  • Uživatelé musí mít možnost registrovat zařízení a musí používat MFA
  • Autenticator může být registrová pouze do jednoho tenantu 🙁
  • Funkce je prozatím v preview, nefunguje vždy úplně spolehlivě

1/ Aktivace na úrovni tenantu: 

New-AzureADPolicy -Type AuthenticatorAppSignInPolicy -Definition ‚{„AuthenticatorAppSignInPolicy“:{„Enabled“:true}}‘ -isOrganizationDefault $true -DisplayName AuthenticatorAppSignIn

 

2/ Stažení a registrace aplikace Microsoft Authenticator 

3/ Přídání účtu (pokud čistě náhodou už nemáme…).

4/ Pro účet povolíme přihlašování telefonem. U účtu se objeví nový indikátor

4/ Hotovo, a testujeme přihlášení, např. na https://portal.office.com

Klasika, zadáme email.

5/ Místo požadavku na zadání hesla vyskočí číslo, které si chvíli musíme pamatovat 🙂

Dobrá zpráva je, že pro případ nouze můžeme stále zadat heslo (třeba když máme telefon v ložnici nebo jiném nedosažitelném místě).

6/ Kdo používá Apple Watch, tak zjistí, že má smůlu. Snad Microsoft vyrobí samostatnou aplikaci pro hodinky.

7/ V telefonu už to vypadá lépe, potvrdíme číslo z přihlašovacího dialogu:

8/ Následuje potvrzení biometrikou

9/ A jsme přihlášeni!

 

Prozatím odpozorováno:

  • Prozatím proces ověřování ne vždy spadne do režimu bez hesla, občas se prostě objeví standardní dialog
  • Občas v přihlašovacím dialogu chybí číslo a nelze se přihlásit jinak než heslem, případně učinit druhý pokus
  • Občas dorazí oznámení bez čísla, takže ho stačí jen potvrdit. Jen člověk neví, co potvrzuje
  • Přihlášení heslem a MFA je vlastně trochu rychlejší a pohodlnější, obzvláště se správcem hesel (ale nám jde o bezpečnost)
  • Standardní MFA (kódy) může mít člověk na dvou telefonech, jedné aplikaci a hodinkách. Password-less potřebuje jedno jediné zařízení.

Pro další testování mám připraven Yubi a další tři U2F hračky. Těším se na dostupnost ověřování s U2F, dám vědět jak to ne/chodí!

Linky:

První informace:

https://techcommunity.microsoft.com/t5/Azure-Active-Directory-Identity/Announcing-password-less-login-identity-governance-and-more-for/ba-p/262472

Postup aktivace a známé problémy:

https://docs.microsoft.com/en-us/azure/active-directory/authentication/howto-authentication-phone-sign-in

Atribut “adminDescription” v AADConnectu

Tohle jsem netušil, a přitom je to prima:

Populating the “adminDescription” attribute with the value “User_NoO365Sync” or “Group_NoO365Sync” (depending on the object type) will allow you to easily filter these objects.

Office 365 – The (Previously) Undocumented AAD Connect Filter

Obsah není dostupný.
Vyjádřete prosím Váš souhlas s ukládáním tzv. "cookies" klepnutím na tlačítko Souhlasím. [cookie-control]

https://azure.microsoft.com/en-us/documentation/articles/active-directory-aadconnectsync-understanding-default-configuration/

Aktualizace O365/Azure PS modulů

PowerShell 5 umí instalovat moduly přímo z https://www.powershellgallery.com, což se hodí.

PS C:\> Connect-MsolService
WARNING: There is a newer version of the Microsoft Online Services Module.  Your current version
will still work as expected, however the latest version can be downloaded at
https://portal.microsoftonline.com.
PS C:\>  Get-Module

ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Manifest   3.1.0.0    Microsoft.PowerShell.Management     {Add-Computer, Add-Content, Checkpoint...
Manifest   3.1.0.0    Microsoft.PowerShell.Utility        {Add-Member, Add-Type, Clear-Variable,...
Manifest   1.0        MSOnline                            {Add-MsolForeignGroupToRole, Add-MsolG...
Binary     1.0.0.1    PackageManagement                   {Find-Package, Find-PackageProvider, G...
Script     1.0.0.1    PowerShellGet                       {Find-DscResource, Find-Module, Find-S...
Script     1.1        PSReadline                          {Get-PSReadlineKeyHandler, Get-PSReadl...

PS C:\> Install-Module msonline -Force
PS C:\> Get-Module

ModuleType Version    Name                                ExportedCommands
---------- -------    ----                                ----------------
Manifest   3.1.0.0    Microsoft.PowerShell.Management     {Add-Computer, Add-Content, Checkpoint...
Manifest   3.1.0.0    Microsoft.PowerShell.Utility        {Add-Member, Add-Type, Clear-Variable,...
Manifest   1.0        MSOnline                            {Add-MsolForeignGroupToRole, Add-MsolG...
Binary     1.0.0.1    PackageManagement                   {Find-Package, Find-PackageProvider, G...
Script     1.0.0.1    PowerShellGet                       {Find-DscResource, Find-Module, Find-S...
Script     1.1        PSReadline                          {Get-PSReadlineKeyHandler, Get-PSReadl...

Update 1: Tak je to špatně. Když se totiž pomocí

(get-item C:\Windows\System32\WindowsPowerShell\v1.0\Modules\MSOnline\Microsoft.Online.Administration.Automation.PSModule.dll).VersionInfo.FileVersion

podíváme na verzi, tak ten update tam prostě tu nejnovější nedá. Upozornění se sice již nezobrazuje, ale podle http://social.technet.microsoft.com/wiki/contents/articles/28552.microsoft-azure-active-directory-powershell-module-version-release-history.aspx jsou k dispozici dokonce dvě novější verze. Bez té se nedá zapnout například DuplicateUPNResiliency nebo DuplicateProxyAddressResiliency (viz. https://azure.microsoft.com/en-us/documentation/articles/active-directory-aadconnectsyncservice-duplicate-attribute-resiliency/).

Zjištění volného místa v lokální databázi AADConnect serveru

Tohle jsem nenašel nikde popsáno, takže poznačit:
1/ Zjistíme název instance z registru "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Local DB\Shared Instances\ADSync\InstanceName"   
    -- > (např. "LOCALDB#SHF818A2") 

2/ CMD.EXE 

C:\>cd C:\Program Files\Microsoft SQL Server\110\Tools\Binn 

C:\Program Files\Microsoft SQL Server\110\Tools\Binn>sqlcmd -S "np:\\.\pipe\LOCALDB#SHF818A2\tsql\query" 

1> select * from sysdatabases 

2> go  

…..blablabla  
ADSync        100 C:\Program Files\Microsoft Azure AD Sync\Data\ADSync.mdf
 ….blablabla

1> use adsync 

2> go 

Changed database context to 'ADSync'. 

1> sp_spaceused 

2> go 

database_name  database_size      unallocated space 
------------------ ------------------ ------------------ ------------------ 
ADSync                     8973.75 MB         404.98 MB 
reserved           data               index_size         unused
 ------------------ ------------------ ------------------ ------------------ 
8609744 KB         7487144 KB         1094992 KB         27608 KB 

1>exit
Zbývá zhruba 1,4 GB místa do limitu 10 GB, takže je nejvyšší čas přesunout databázi na plnohodnotný SQL server.
Aktualizace:
Novější verze AAD Connectu již obsahují cmdlet „Get-ADSyncDatabaseConfiguration“:
PS C:\> Get-ADSyncDatabaseConfiguration

IsLocalDBInstalled    : True
LocalDBUsedSpaceInMb  : 69.69
SqlServerName         : (localdb)
SqlServerInstanceName : .\ADSync
SqlServerDBName       : ADSync

PS C:\>

CSR pro Domain Controller certifikát (offline request)

Poslední dobou často vystavujeme základní certifikáty pro doménové řadiče na certifikačních autoritách které jsou v jiných AD forestech. Možná se někomu bude hodit PowerShell skript, který celý proces generování výrazně usnadní. Výsledná žádost neobsahuje GUID, nicméně to ve většině případů ani moc nevadí 🙂

####################################################################################################
######## This script generates CSR for DC certificate (signed by external CA).
######## Version 1.2 (2016-04-19)
######## Jan Zak (www.jan-zak.cz)
####################################################################################################

#Define variables

$ComputerName=(Get-WmiObject win32_computersystem).DNSHostName
$ComputerDomain=(Get-WmiObject win32_computersystem).Domain
$ComputerFQDN=(Get-WmiObject win32_computersystem).DNSHostName+"."+(Get-WmiObject win32_computersystem).Domain
$DomainNetBIOSName=(Get-ADDomain).NetBIOSName
#$WorkDir=(Get-Location).Path 
$WorkDir=$Env:USERPROFILE + "\Desktop"
$CSRFilePath = $WorkDir + "\" + $ComputerName + ".csr"
$DCRequestINFFileName = $WorkDir + "\" + $ComputerName + ".inf"

Clear-Host

#Verify permissions for access to private keys
$myIdentity = [System.Security.Principal.WindowsIdentity]::GetCurrent()
$wp = New-Object Security.Principal.WindowsPrincipal($myIdentity)
if (-not $wp.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)) {
 Write-Host "This script requires administrative privileges, please re-launch with elevated credentials." -ForegroundColor Red -BackgroundColor Yellow
 Start-Sleep 20
 Exit
}


Write-Host "Collecting data for CSR:" -ForegroundColor Green

$CN=if(($result = Read-Host "Press enter to accept $ComputerFQDN as CN or specify a value: ") -eq '') {$ComputerFQDN} else {$result}
$SAN1=if(($result = Read-Host "Press enter to accept $CN as SAN1 or specify a value: ") -eq '') {$CN} else {$result}
$SAN2=if(($result = Read-Host "Press enter to accept $ComputerDomain as SAN2 or specify a value: ") -eq '') {$ComputerDomain} else {$result}
$SAN3=if(($result = Read-Host "Press enter to accept $DomainNetBIOSName as SAN3 or specify a value: ") -eq '') {$DomainNetBIOSName} else {$result}
Write-Host
Write-Host Values to build CSR: -ForegroundColor Green
Write-Host ==================== -ForegroundColor Green
Write-Host CN=$CN
Write-Host DNS=$SAN1
Write-Host DNS=$SAN2
Write-Host DNS=$SAN3
Write-Host
Write-Host Files are going to be stored in $WorkDir\ folder.

write-host -nonewline "Continue? (Y/N) " -ForegroundColor Yellow
$response = read-host
if ( $response -ne "Y" ) { exit }


# Build CSR file

Write-Host "Preparing Server Certificate Request File (CertReq.inf) for $ComputerName `r "

$DCRequestINFFileContent =
@"
[Version]

Signature="$Windows NT$"

[NewRequest]

Subject = "CN=$CN" ; Remove to use an empty Subject name.
;Because SSL/TLS does not require a Subject name when a SAN extension is included, the certificate Subject name can be empty.
;If you are using another protocol, verify the certificate requirements.
;EncipherOnly = FALSE ; Only for Windows Server 2003 and Windows XP. Remove for all other client operating system versions.
Exportable = TRUE ; TRUE = Private key is exportable
KeyLength = 2048 ; Valid key sizes: 1024, 2048, 4096, 8192, 16384
KeySpec = 1 ; Key Exchange – Required for encryption
KeyUsage = 0xA0 ; Digital Signature, Key Encipherment
MachineKeySet = True
ProviderName = "Microsoft RSA SChannel Cryptographic Provider"
RequestType = PKCS10 ; or CMC.

[EnhancedKeyUsageExtension]
; If you are using an enterprise CA the EnhancedKeyUsageExtension section can be omitted
OID=1.3.6.1.5.5.7.3.1 ; Server Authentication
OID=1.3.6.1.5.5.7.3.2 ; Client Authentication
OID=1.3.6.1.5.2.3.5 ; KDC Authentication
OID=1.3.6.1.4.1.311.20.2.2 ; Smart Card Logon


[Extensions]
; If your client operating system is Windows Server 2008, Windows Server 2008 R2, Windows Vista, or Windows 7
; SANs can be included in the Extensions section by using the following text format. Note 2.5.29.17 is the OID for a SAN extension.
2.5.29.17 = "{text}"
_continue_ = "dns=$SAN1&"
_continue_ = "dns=$SAN2&"
_continue_ = "dns=$SAN3&"


; If your client operating system is Windows Server 2003, Windows Server 2003 R2, or Windows XP
; SANs can be included in the Extensions section only by adding Base64-encoded text containing the alternative names in ASN.1 format.
; Use the provided script MakeSanExt.vbs to generate a SAN extension in this format.
; RMILNE – the below line is remmed out else we get an error since there are duplicate sections for OID 2.5.29.17
; 2.5.29.17=MCaCEnd3dzAxLmZhYnJpa2FtLmNvbYIQd3d3LmZhYnJpa2FtLmNvbQ

[RequestAttributes]
; If your client operating system is Windows Server 2003, Windows Server 2003 R2, or Windows XP
; and you are using a standalone CA, SANs can be included in the RequestAttributes
; section by using the following text format.
;”SAN="dns=not.server2008r2.com&dns=stillnot.server2008r2.com&dns=meh.2003server.com"
; Multiple alternative names must be separated by an ampersand (&).

;CertificateTemplate = WebServer ; Modify for your environment by using the LDAP common name of the template.

;Required only for enterprise CAs.
"@

Write-Host "Generating Certificate Request file... `r " -ForegroundColor DarkYellow
$DCRequestINFFileContent | out-file -filepath $DCRequestINFFileName -force
certreq -new $DCRequestINFFileName $CSRFilePath
Remove-Item $DCRequestINFFileName -Force

Write-Host "CSR fle created as $CSRFilePath. Use this file to request the DC's server certificate `r " -ForegroundColor Green
Start-Sleep 20
exit

Používáme cookies. Další informace

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close