Идентификация и контроль доступа в приложениях windows...

21
ИДЕНТИФИКАЦИЯ И КОНТРОЛЬ ДОСТУПА В ПРИЛОЖЕНИЯХ WINDOWS AZURE Антон Видищев, Sigma Ukraine.

Upload: anton-vidishchev

Post on 29-Nov-2014

501 views

Category:

Technology


4 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Идентификация и контроль доступа в приложениях Windows Azure

ИДЕНТИФИКАЦИЯ И КОНТРОЛЬ ДОСТУПА В ПРИЛОЖЕНИЯХ WINDOWS AZURE

Антон Видищев, Sigma Ukraine.

Page 2: Идентификация и контроль доступа в приложениях Windows Azure

Облачным приложениям необходима идентификацияИдентификация/авторизация может быть сложнойAccess Control Service может облегчить Вам жизнь

Page 3: Идентификация и контроль доступа в приложениях Windows Azure
Page 4: Идентификация и контроль доступа в приложениях Windows Azure

ИДЕНТИФИКАЦИЯ МОЖЕТ БЫТЬ СЛОЖНОЙ

В поисках пути среди протоколов и форматов

Page 5: Идентификация и контроль доступа в приложениях Windows Azure

ПОЧЕМУ?Self-inflicted complexity

Page 6: Идентификация и контроль доступа в приложениях Windows Azure

ПОЧЕМУ?

Использование инструмента, неподходящего для сценария

Page 7: Идентификация и контроль доступа в приложениях Windows Azure

ПОЧЕМУ?Проблема изначально нетривиальна

Page 8: Идентификация и контроль доступа в приложениях Windows Azure
Page 9: Идентификация и контроль доступа в приложениях Windows Azure

Получить токен, использовать токен, обработать сессии

WIF

A C S

Page 10: Идентификация и контроль доступа в приложениях Windows Azure

ACS МОЖЕТ УПРОСТИТЬ РАЗРАБОТКУWeb Single Sign On

Page 11: Идентификация и контроль доступа в приложениях Windows Azure

WIF

A C S

Page 12: Идентификация и контроль доступа в приложениях Windows Azure

ДЕМОНСТРАЦИЯACS И WEB SSO

Page 13: Идентификация и контроль доступа в приложениях Windows Azure

ИДЕНТИФИКАЦИЯ И ПРИЛОЖЕНИЯ

Page 14: Идентификация и контроль доступа в приложениях Windows Azure

401 Unauthorized

WIF

A C S

Page 15: Идентификация и контроль доступа в приложениях Windows Azure

ДЕМОНСТРАЦИЯACS В METRO-ПРИЛОЖЕНИЯХ

Page 16: Идентификация и контроль доступа в приложениях Windows Azure

WIF

A C S

?

IP-List, JSON

Page 17: Идентификация и контроль доступа в приложениях Windows Azure

ПОЛУЧЕНИЕ СПИСКА IDENTITY PROVIDERS

function GetIPsList() { var ipsFeed = "https://...accesscontrol.windows.net:443/v2/metadata/...";         var request = new XMLHttpRequest();         request.open("GET", ipsFeed, false);         request.send(null);         var jsonString = request.responseText;         ipList = JSON.parse(jsonString);                           return ipList;      }

Page 18: Идентификация и контроль доступа в приложениях Windows Azure

WEBAUTHENTICATIONBROKER + ACS (1/2)function GetTokenFromACS(acsURL) {

try { var callbackURL ="http://cloudidentity.cloudapp.net/Bouncer.aspx"; var startURI = new Windows.Foundation.Uri(acsURL); var endURI = new Windows.Foundation.Uri(callbackURL);Windows.Security.Authentication.Web.WebAuthenticationBroker.authenticateAsync( Windows.Security.Authentication.Web.WebAuthenticationOptions.n, startURI, endURI).then(callbackACSAuth, callbackACSAuthError); } catch (err) { ShowDialog("Error launching WebAuth for " + acsURL + "<br />" + err);  return;       }}

Page 19: Идентификация и контроль доступа в приложениях Windows Azure

WEBAUTHENTICATIONBROKER + ACS (1/2)function callbackACSAuth(result) { var status = result.responseStatus; if (status == 0) {    var data = result.responseData;      var vault = new Windows.Security.Credentials.PasswordVault();      var cred = new Windows.Security.Credentials.PasswordCredential( "cloudidentity.cloudapp.net", "tempusername", data.substring(data.indexOf("=", 0) + 1, data.length));      vault.add(cred);      id("tokenText").innerText = cred.password;   } else {    ShowDialog("Status returned by WebAuth broker: " + status +  "\r\n" + "data: " + data + "\r\n" + "text: " + result.responseText);   }

Page 20: Идентификация и контроль доступа в приложениях Windows Azure

ВЫЗОВ СЕРВИСА ПО OAUTH2

function InvokeService(token, serverUrl) { var authHeader = "OAuth " + token;   var request = new XMLHttpRequest();   request.open("GET", serverUrl, false);   request.setRequestHeader("Authorization", authHeader);   request.send();    return request.responseText}

Page 21: Идентификация и контроль доступа в приложениях Windows Azure

СПАСИБО!Секция вопросов и ответов