Requisitos de la organización
Use los valores definidos por el usuario que ya están presentes en el servidor LDAP de la organización. Además, el portal de la organización se usa para el inicio de sesión y acceso de CA Business Service Insight mediante las capacidades de inicio de sesión silencioso de CA Business Service Insight para los portales de inició único de sesión (SSO).
Defina un script de traducción de Visual Basic (VB) para la creación automática de usuarios en el sistema de CA Business Service Insight (sincronización de LDAP). El script de traducción se utiliza para conectarse al servidor LDAP de la organización y extraer la lista de usuarios de allí. Los métodos de paquetes de herramientas de CA Business Service Insight se utilizan para la creación de usuarios, grupos y roles.
Ejemplo de código de VB de conexión de LDAP
Option Explicit On
Imports System.DirectoryServices
Public Function GetLDAPUsers(ByVal ldapServerName As String, ByVal pFindWhat As String) As ArrayList
Dim oSearcher As New DirectorySearcher
Dim oResults As SearchResultCollection
Dim oResult As SearchResult
Dim RetArray As New ArrayList
Dim mCount As Integer
Dim mIdx As Integer
Dim mLDAPRecord As String
Dim ResultFields() As String = {"securityEquals", "cn"}
Try
With oSearcher
.SearchRoot = New DirectoryEntry("LDAP://" & ldapServerName & _
"/dc=lippogeneral,dc=com")
.PropertiesToLoad.AddRange(ResultFields)
.Filter = "cn=" & pFindWhat & "*"
oResults = .FindAll()
End With
mCount = oResults.Count
If mCount > 0 Then
For Each oResult In oResults
mLDAPRecord = oResult.GetDirectoryEntry().Properties("cn").Value & " " & oResult.GetDirectoryEntry().Properties("mail").Value
RetArray.Add(mLDAPRecord)
Next
End If
Catch e As Exception
MsgBox("Error is " & e.Message)
Return RetArray
End Try
Return RetArray
End Function
Sub CheckAddUser
Dim map
Set map = Tools.GetUserDetails("acme@Test")
' Comprobar si ya existe el usuario
' Asignación de Tools.AddUserByMap
' Consultar con el duplicado
map("UserName") = "acme2"
map("UserPassword") = "acme2"
map("UserPasswordExpirationInterval") = "50"
map("UserDescription") = "New description"
map("UserStatus") = "INACTIVE"
Tools.AddUserByMap map
Tools.Commit
End Sub
Métodos de script de traducción de VB de CA Business Service Insight
AddOrganization / IsOrganizationExists
IsRoleExists / SearchRoles
AddUserByMap / GetUserName
GetOrganizationName / IsUserExists
GetUserDetails / SearchUsers
GetUserFullName / UpdateUserByMap
AddUserGroupByMap / IsUserGroupExists
DeleteUserGroup / SearchUserGroups
GetUserGroupDetails / UpdateUserGroupByMap
Cree un código de "inicio de sesión silencioso" e intégrelo en el portal de la organización que se va a usar para el inicio de sesión de CA Business Service Insight.
Ejemplo de código C# de la puerta de enlace de CA Business Service Insight (se integrará en el portal de la organización)
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Web;
using System.Web.Security;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Security.Cryptography.X509Certificates;
using OblicoreAuthenticationWebService;
namespace Oblicore.SSO
{
/// <summary>
/// Esta página de muestra es una puerta de enlace de muestra a la interfaz de la aplicación Oblicore Guarantee(tm)
/// La página se debería convocar antes de navegar a cualquier página en el sitio web de Oblicore Guarantee
/// o cualquier página utilizando los servicios web proporcionados por Oblicore
/// La página de OblicoreGateway debería realizar las acciones siguientes:
/// 1) Convocar el servicio web de autenticación de Oblicore para autenticar el usuario actual
/// 2) Convocar la página SilentLogin.asp en el sitio web de Oblicore para iniciar sesión silenciosamente al sitio web de Oblicore
/// y crear el contexto de sesión de usuario
/// 3) Redirigir a la página deseada
/// </summary>
public partial class _Default : System.Web.UI.Page
{
/// <summary>
/// credenciales de usuario de Oblicore
/// </summary>
struct UserCredentials
{
public string UserName;
public string Organization;
}
private void Page_Load(object sender, System.EventArgs e)
{
if (Request["OGSESSIONID"]!=null)
{
//SilentLogin.asp ha vuelto a dirigir a esta página después de la autenticación.
//Guardar OGSESSIONID en la cookie para utilizar más adelante
HttpCookie SessionCookie = new HttpCookie("OGSESSIONID",Request["OGSESSIONID"]);
Response.Cookies.Add(SessionCookie);
//Redirigir a la página deseada
Response.Redirect("/");
}
else
{
//Primera vez que se entra en la página.
//Realizar la autenticación.
string sAuthToken = string.Empty;
// Obtener nombre de usuario de OG y organizaciones del directorio de usuarios del portal
UserCredentials ucOblicoreUser = GetOblicoreUserCredentials();
//Inicializar el servicio web de autenticación de Oblicore
//El proyecto debería incluir la referencia web al servicio
//El servicio está localizado en el sitio web de Oblicore Guarantee en /WebServices/OblicoreAuth.asmx
OblicoreAuth oAuthService = new OblicoreAuth();
// oAuthService.ClientCertificates.Add(x509);
oAuthService.Url = "https://" + "localhost" + "/WebServices/OblicoreAuth.asmx";
try
{
//Invocar servicio web de autenticación.
//El método AuthenticateUser devuelve un token cifrado, que debería pasar a
//la página SilentLogin.asp, situada en la carpeta raíz del sitio web de Oblicore Guarantee
sAuthToken = oAuthService.AuthenticateUser(ucOblicoreUser.UserName,ucOblicoreUser.Organization);
}
catch (Exception ex)
{
//Continuar con error de autenticación si los hay
Response.Write("The error has occurs during Oblicore authentication: " + ex.Message);
Response.End() ;
}
//Convocar la página Call SilentLogin.asp junto con el pase a la carpeta de la autenticación
//La página SilentLogin.asp está situada en la carpeta raíz del sitio web de Oblicore Guarantee
//Después del inicio de sesión, la página SilentLogin.asp volverá a redirigir a la página actual junto con el parámetro OGSESSIONID de pase
//Response.Redirect(ConfigurationSettings.AppSettings["OGURL"].ToString() + "/SilentLogin.asp?AuthToken="+Server.UrlEncode(sAuthToken)+"&DesiredPage="+GetCurrentPageURL());
Response.Redirect("https://vit-05/SilentLogin.asp?AuthToken=" + Server.UrlEncode(sAuthToken) + "&DesiredPage=/Oblicore.asp"); // + GetCurrentPageURL());
}
}
/// <summary>
/// Obtener nombre de usuario y organización de Oblicore Guarantee del directorio de usuarios del portal
/// El método se supone que convoca ActiveDirectory u otro repositorio mediante el portal de la API
/// para obtener el nombre de usuario y organización actual en términos de Oblicore Guarantee
/// </summary>
/// <returns>estructura de credenciales de usuario de Oblicore Guarantee</returns>
private UserCredentials GetOblicoreUserCredentials()
{
UserCredentials ucOblicoreUser = new UserCredentials();
//actualmente siempre se supone que el usuario es administrador y la organización es Oblicore (valor predeterminado)
ucOblicoreUser.UserName = "sadmin";
ucOblicoreUser.Organization = "Oblicore";
return ucOblicoreUser;
}
/// <summary>
/// Recupera URL de página actual
/// </summary>
/// <returns>URL completa de la página actual</returns>
private string GetCurrentPageURL()
{
string s = (Request.ServerVariables["HTTPS"]==null||Request.ServerVariables["HTTPS"].ToLower()=="off")?"http://":"https://";
s += Request.ServerVariables["SERVER_NAME"] + Request.ServerVariables["URL"];
if (Request.QueryString.ToString() != string.Empty)
{
s += "?"+Request.QueryString.ToString();
}
return s;
}
#region, código generado por el diseñador de formularios web
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: el diseñador de formularios web de ASP.NET requiere esta llamada.
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// Método obligatorio por motivos de compatibilidad del diseñador; no modificar
/// el contenido de este método con el editor de código.
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}
El diagrama siguiente muestra el proceso de sincronización y el flujo de acceso del portal a los usuarios. El script de traducción se configura para ejecutarse periódicamente. El script mantiene la lista de usuarios de LDAP hasta la fecha y añade/elimina los usuarios según sea necesario.
Los usuarios realizan un inicio de sesión al portal de la organización. El portal se puede configurar para reenviarlos al servidor de CA Business Service Insight o mostrar una lista de otras aplicaciones disponibles. El servidor de CA Business Service Insight utiliza las credenciales que se proporcionaron durante el inicio de sesión del portal inicial.

|
Copyright © 2013 CA.
Todos los derechos reservados.
|
|