Informazioni di riferimento per gli sviluppatori BHOLD per Microsoft Identity Manager 2016
Il modulo BHOLD-core può elaborare i comandi di script. Può essere eseguita direttamente usando il bscript.dll in un progetto .NET. Interagire anche con l'interfaccia b1scriptservice.asmx del servizio Web.
Prima dell'esecuzione di uno script, tutte le informazioni all'interno dello script devono essere raccolte per comporre questo script. Queste informazioni possono essere raccolte dalle origini seguenti:
- Input utente
- Dati BHOLD
- Applicazioni
- Altro
I dati BHOLD possono essere recuperati usando la funzione GetInfo dell'oggetto script. È disponibile un elenco completo dei comandi che possono presentare tutti i dati archiviati nel database BHOLD. Tuttavia, i dati presentati sono soggetti alle autorizzazioni di visualizzazione dell'utente connesso. Il risultato è sotto forma di un documento XML che può essere analizzato.
Un'altra origine per informazioni può essere una delle applicazioni controllate da BHOLD. Lo snap-in dell'applicazione ha una funzione speciale, functionDispatch, che può essere usata per presentare informazioni specifiche dell'applicazione. Questo documento viene presentato anche come documento XML.
Infine, se non esiste alcun altro modo, lo script può contenere comandi direttamente ad altre applicazioni o sistemi. NoThenstallation di software aggiuntivo nel server BHOLD può compromettere la sicurezza dell'intero sistema.
Tutte queste informazioni vengono inserite in un documento XML e assegnate all'oggetto script BHOLD. L'oggetto combina questo documento con una funzione predefinita. La funzione predefinita è un documento XSL che converte il documento di input dello script in un documento di comando BHOLD.
I comandi vengono eseguiti lo stesso ordine del documento. Se una funzione ha esito negativo, tutti i comandi eseguiti vengono rollback.
Oggetto Script
Questa sezione descrive come usare l'oggetto script.
Recuperare le informazioni BHOLD
La funzione GetInfo viene usata per recuperare informazioni dai dati disponibili nel sistema di autorizzazione BHOLD. La funzione richiede un nome di funzione e alla fine uno o più parametri. Se questa funzione ha esito positivo, viene restituito un oggetto BHOLD o una raccolta sotto forma di documento XML.
Se la funzione non riesce, la funzione GetInfo restituisce una stringa vuota o un errore. La descrizione e il numero di errore possono essere usati per ottenere altre informazioni sull'errore.
La funzione GetInfo 'FunctionDispatch' può essere usata per recuperare informazioni da un'applicazione controllata dal sistema BHOLD. Questa funzione richiede tre parametri: ID dell'applicazione, la funzione di invio definita nell'ambiente del servizio app e un documento XML con informazioni di supporto per l'ambiente del servizio app. Se la funzione ha esito positivo, il risultato è disponibile in formato XML nell'oggetto risultato.
Il frammento di codice seguente è un semplice esempio C# di GetInfo:
ScriptProcessor myScriptProcessor = new ScriptProcessor();
myScriptProcessor.Initializae("CORP\\b1user");
myScriptProcessor.GetInfo("OrgUnit", "1");
Analogamente, l'oggetto BScript può anche essere accessibile tramite il servizio b1scriptservice
Web . Questa operazione viene eseguita aggiungendo un riferimento Web al progetto usando http://< server>:5151/BHOLD/Core/b1scriptservice.asmx in cui <il server è il server> con i file binari BHOLD installati. Per altre informazioni, vedere Aggiunta di un riferimento a un servizio Web a un progetto di Visual Studio.
Nell'esempio seguente viene illustrato come usare la funzione GetInfo da un servizio Web. Questo codice recupera l'unità organizzativa con un orgID di 1 e quindi visualizza il nome di tale unità organizzativa sullo schermo.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
namespace bhold_console
{
class Program
{
static void Main(string[] args)
{
var bholdService = new BHOLDCORE.B1ScriptService();
bholdService.Url = "http://app1.corp.contoso.com:5151/BHOLD/Core/b1scriptservice.asmx";
string orgname= "";
if (args.Length == 3)
{
//Use explicit credentials from command line
bholdService.UseDefaultCredentials = false;
bholdService.Credentials = new System.Net.NetworkCredential(args[0], args[1], args[2]);
bholdService.PreAuthenticate = true;
}
else
{
bholdService.UseDefaultCredentials = true;
bholdService.PreAuthenticate = true;
}
//Load BHOLD information into an xml document and loop through document to find the bholdDescription value
var myOrgUnit = new System.Xml.XmlDocument();
myOrgUnit.LoadXml(bholdService.GetInfo("OrgUnit","1","","");
XmlNodeList myList = myOrgUnit.SelectNodes(("//item");
foreach (XmlNode myNode in myList)
{
for (int i = 0; i < myNode.ChildNodes.Count; i++)
{
if (myNode.ChildNodes[i].InnerText.ToString() == "bholdDescription")
{
orgname = myNode.ChildNodes[i + 1].InnerText.ToString();
}
}
}
System.Console.WriteLine("The Organizational Unit Name is: " + orgname);
}
}
}
Nell'esempio VBScript seguente viene usato il servizio Web tramite SOAP e usando GetInfo. Per altri esempi per SOAP 1.1, SOAP 1.2 e HTTP POST, vedere la sezione Riferimento gestito BHOLD oppure passare al servizio Web direttamente da un browser e visualizzarli lì.
Dim SOAPRequest
Dim SOAPParameters
Dim SOAPResponse
Dim xmlhttp
Set xmlhttp = CreateObject("Microsoft.XMLHTTP")
xmlhttp.open "POST", "http://app1.corp.contoso.com:5151/BHOLD/Core/b1scriptservice.asmx", False, "CORP\Administrator", "abc123*2k"
xmlhttp.setRequestHeader "Content-type", "text/xml; charset=utf-8"
xmlhttp.setRequestHeader "SOAPAction", "http://B1/B1ScriptService/GetInfo"
SOAPRequest = "<?xml version='1.0' encoding='utf-8'?> <soap:Envelope" & vbCRLF
SOAPRequest = SOAPRequest & " xmlns:xsi=""http://" & vbCRLF
SOAPRequest = SOAPRequest & " www.w3.org/2001/XMLSchema-instance""" & vbCRLF
SOAPRequest = SOAPRequest & " xmlns:xsd=""http://www.w3.org/2001/XMLSchema""" & vbCRLF
SOAPRequest = SOAPRequest & " xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">" & vbCRLF
SOAPRequest = SOAPRequest & " <soap:Body>" & vbCRLF
SOAPRequest = SOAPRequest & " <GetInfo xmlns=""http://B1/B1ScriptService"">" & vbCRLF
SOAPRequest = SOAPRequest & " <functionName>OrgUnit</functionName>" & vbCRLF
SOAPRequest = SOAPRequest & " <parameter1>1</parameter1>" & vbCRLF
SOAPRequest = SOAPRequest & " <parameter2></parameter2>" & vbCRLF
SOAPRequest = SOAPRequest & " <parameter3></parameter3>" & vbCRLF
SOAPRequest = SOAPRequest & " </GetInfo>" & vbCRLF
SOAPRequest = SOAPRequest & " </soap:Body>" & vbCRLF
SOAPRequest = SOAPRequest & " </soap:Envelope>"
MsgBox SOAPRequest
xmlhttp.send SOAPRequest
SOAPResponse = xmlhttp.responseText
MsgBox SOAPResponse
Eseguire script
La funzione ExecuteScript dell'oggetto BScript può essere usata per eseguire script. Questa funzione richiede due parametri. Il primo parametro è il documento XML che contiene le informazioni personalizzate da usare dallo script. Il secondo parametro è il nome dello script predefinito da usare. InIn la directory degli script predefiniti BHOLD, in questo caso dovrebbe essere un documento XSL con lo stesso nome della funzione, ma con l'estensione xsl.
Se la funzione non riesce, la funzione ExecuteScript restituisce il valore False. La descrizione dell'errore e il numero possono essere usati per sapere cosa è andato male. Di seguito è riportato un esempio di uso del metodo Web ExecuteXML. Questo metodo richiama ExecuteScript.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Sample
{
class Program
{
static void Main(string[] args)
{
var bholdService = new BHOLDCORE.B1ScriptService();
bholdService.Url = "http://app1.corp.contoso.com:5151/BHOLD/Core/b1scriptservice.asmx";
if (args.Length == 3)
{
//Use explicit credentials from command line
bholdService.UseDefaultCredentials = false;
bholdService.Credentials = new System.Net.NetworkCredential(args[0], args[1], args[2]);
bholdService.PreAuthenticate = true;
}
else
{
bholdService.UseDefaultCredentials = true;
bholdService.PreAuthenticate = true;
}
System.Console.WriteLine( "Add user #3 to role #44, result: {0}", bholdService.ExecuteXml(roleAddUser("44", "3")) );
System.Console.WriteLine("Add user D1 to role 'MR-OU2 No Users', result: {0}", bholdService.ExecuteXml(roleAddUser("MR-OU2 No Users", "D1")));
}
private static System.Xml.XmlNode roleAddUser(string roleId, string userId)
{
var script = new System.Xml.XmlDocument();
script.LoadXml(string.Format("<functions>"
+" <function name='roleadduser' roleid='{0}' userid='{1}' />"
+"</functions>",
roleId,
userId)
);
return script.DocumentElement;
BholdScriptResult
Questa funzione GetInfo è disponibile dopo l'esecuzione della funzione executescript . La funzione restituisce una stringa formattata XML contenente il report di esecuzione completo. Il nodo Script contiene la struttura XML dello script eseguito.
Per ogni funzione che ha esito negativo durante l'esecuzione dello script viene aggiunta una funzione node con il nome dei nodi. ExecuteXML e Error vengono aggiunti alla fine del documento tutti gli ID generati.
Si noti che vengono aggiunte solo le funzioni che contengono un errore. Un numero di errore '0' indica che la funzione non viene eseguita.
<Bhold>
<Script>
<functions>
<function name="OrgUnitadd" description="OrgUnit1" parentid="root" orgtypeid="root" return="@ID@"/>
<function name="roleaddOrgUnit" OrgUnitid="OrgUnit1" roleid="Role1_OrgUnit1" return="@ID@"/>
</functions>
</Script>
<Function>
<Name>OrgUnitadd</Name>
<ExecutedXML>
<function name="OrgUnitadd" description="OrgUnit1" parentid="root" orgtypeid="root" return="@ID@"/>
</ExecutedXML>
<Error Number="5" Description="Violation of UNIQUE KEY constraint 'IX_OrgUnits'. Cannot insert duplicate key in object 'dbo.OrgUnits'.
The statement has been terminated."/>
</Function>
<Function>
<Name>roleaddOrgUnit</Name>
<ExecutedXML>
<function name="roleaddOrgUnit" OrgUnitid="OrgUnit1" roleid="Role1_OrgUnit1" return="@ID@"/>
</ExecutedXML>
<Error Number="0" Description=""/>
</Function>
<IDS>
<ID name="@ID@">35</ID>
</IDS>
</Bhold>
Parametri ID
I parametri ID ottengono un trattamento speciale. I valori non numerici vengono usati come valore di ricerca per individuare le entità corrispondenti nell'archivio dati BHOLD. Quando il valore di ricerca non è univoco, viene restituita la prima entità conforme al valore di ricerca.
Per distinguere i valori di ricerca numerica dagli ID, è possibile usare un prefisso. Quando i primi sei caratteri del valore di ricerca sono uguali a 'no_id:', questi caratteri vengono rimossi prima che il valore venga usato per la ricerca. I caratteri jolly SQL '%' possono essere usati.
I campi seguenti vengono usati con il valore di ricerca:
Tipo ID | Campo di ricerca |
---|---|
OrgUnitID | Descrizione |
Roleid | Descrizione |
Taskid | Descrizione |
userID | DefaultAlias |
Accesso e autorizzazioni di script
Il codice lato server nelle pagine di Active Server viene usato per eseguire gli script. Pertanto, l'accesso allo script significa accedere a queste pagine. Il sistema BHOLD gestisce informazioni sui punti di ingresso delle pagine personalizzate. Queste informazioni includono la pagina iniziale e la descrizione della funzione (è necessario supportare più lingue).
Un utente è autorizzato a poter immettere le pagine personalizzate ed eseguire uno script. Ogni punto di ingresso viene presentato come attività. Ogni utente che ha ottenuto questa attività tramite un ruolo o un'unità è in grado di eseguire la funzione corrispondente.
Una nuova funzione nel menu presenta tutte le funzioni personalizzate che possono essere eseguite dall'utente. Poiché uno script può eseguire azioni nel sistema BHOLD in un'identità diversa dall'utente connesso. È possibile concedere l'autorizzazione per eseguire un'azione specifica senza avere supervisione su qualsiasi oggetto. Ad esempio, questo potrebbe essere utile per un dipendente che è autorizzato solo ad immettere nuovi clienti all'azienda. Questi script possono essere usati anche per creare pagine di registrazione automatica.
Script di comando
Lo script di comando contiene un elenco di funzioni eseguite dal sistema BHOLD. L'elenco viene scritto in un documento XML conforme alle definizioni seguenti:
Script di comando | <functions>functions</functions> |
---|---|
functions | funzione {function} |
function | <function name="functionName" functionParameters [return] (/> | > parameterList </function>) |
functionName | Nome di funzione valido, come descritto nelle sezioni seguenti. |
functionParameters | { functionParameter } |
functionParameter | parameterName = "parameterValue" |
parameterName | Nome di parametro valido. |
Parametervalue | @variable@ | Valore |
Valore | Valore di parametro valido. |
parameterList | <parameters> {parameterItem} </parameters> |
parameterItem | <parameter name="parameterName"> parameterValue </parameter> |
return | return="@variable@" |
Variabile | Nome di una variabile personalizzata. |
XML include le traduzioni seguenti di caratteri speciali:
XML | Carattere |
---|---|
& |
& |
< |
< |
> |
> |
" |
" |
' |
' |
Questi caratteri XML possono essere usati negli identificatori, ma non sono consigliati.
Il codice seguente illustra un esempio di documento di comando valido con tre funzioni:
<functions>
<functionname="OrgUnitAdd" parentID="34" description="Acme Inc." orgtypeID="5" return="@UnitID@" />
<function name="UserAdd" description="John Doe" alias="jdoe" languageID="1" OrgUnitID="@UnitID@" />
<function name="TaskAddFile" taskID="93" path="/customers/purchase">
<parameters>
<parameter name="history"> True</parameter>
</parameters>
</function>
</functions>
La funzione OrgUnitAdd archivia l'ID dell'unità creata in una variabile denominata UnitID. Questa variabile viene usata come input per la funzione UserAdd. Il valore restituito di questa funzione non viene utilizzato. Le sezioni seguenti descrivono tutte le funzioni disponibili, i parametri obbligatori e i relativi valori restituiti.
Eseguire funzioni
Questa sezione descrive come usare le funzioni di esecuzione.
ABAAttributeRuleAdd
Creare una nuova regola di attributo in un tipo di attributo specifico. Le regole degli attributi possono essere collegate solo a un tipo di attributo.
La regola di attributo specificata può essere collegata a tutti i tipi di attributo possibili.
RuleType non può essere modificato con il comando "ABAattributeruletypeupdate". Richiede che la descrizione dell'attributo sia univoca.
Argomenti | Tipo |
---|---|
Descrizione | Testo |
RuleType | Specificare il tipo di regola dell'attributo. A seconda del tipo di regola dell'attributo, è necessario includere altri argomenti. I valori del tipo di regola seguenti sono validi:
|
InvertResult | ["0"|"1"|"N"|"Y"] |
AttributeTypeID | Testo |
Argomenti facoltativi | Tipo |
---|---|
Operatore | Testo Nota: questo argomento è obbligatorio se RuleType è 1 o 4. I valori possibili sono '=', '<'o '>'. I tag XML devono usare ">" per '>' e "<" per '<'. |
RangeMin | Numero Nota: questo argomento è obbligatorio se RuleType è 3. |
RangeMax | Numero Nota: questo argomento è obbligatorio se RuleType è 3. |
Valore | Testo Nota: questo argomento è obbligatorio se RuleType è 0, 1 o 4. L'argomento deve essere un valore numerico o alfanumerico. |
Tipo restituito AttributeRuleID | Testo |
applicationadd
Crea una nuova applicazione, restituisce l'ID della nuova applicazione.
Argomenti | Tipo |
---|---|
description | |
computer | |
modulo | |
parameter | |
protocol | |
username | |
password | |
svroleID (facoltativo) | Se questo argomento non è presente, viene utilizzato un ruolo di supervisore dell'utente corrente. |
Applicationaliasformula (facoltativo) | La formula alias viene usata per creare un alias per un utente quando viene assegnato a un'autorizzazione dell'applicazione. L'alias viene creato se l'utente non ha già un alias per questa applicazione. Se non viene assegnato alcun valore all'alias predefinito dell'utente viene usato come alias per l'applicazione. La formula viene formattata come [<<objecttype>>.<<nameofobjecttypeattribute>>(startindexoffset,length offset)] . L'offset è facoltativo. È possibile usare solo gli attributi User e Application. È possibile usare testo libero. I caratteri riservati sono parentesi quadre sinistra ([) e parentesi quadrata destra (]). Ad esempio: [Application.bholdDescription]\[User.bholdDefAlias(1,5)] . |
Tipo restituito | ID della nuova applicazione. |
AttributeSetValue
Imposta il valore di un tipo di attributo connesso al tipo di oggetto. Richiede che le descrizioni del tipo di oggetto e il tipo di attributo siano univoci.
Argomenti | Tipo |
---|---|
ObjectTypeID | Testo |
ObjectID | Testo |
AttributeTypeID | Testo |
Valore | Testo |
Tipo restituito | Tipo |
AttributeTypeAggiungi
Inserisce un nuovo tipo di attributo/tipo di proprietà.
Argomenti | Tipo |
---|---|
DataTypeID | Testo |
Descrizione (=Identità) | Testo Nota: non è possibile usare parole riservate, tra cui 'a', 'frm', 'id', 'usr' e 'bhold'. |
MaxLength | Numero in [1,..,255] |
ListOfValues (boolean) | ["0"|"1"|"N"|"Y"] |
DefaultValue | Testo |
Tipo restituito | Tipo |
AttributeTypeID | Testo |
AttributeTypeSetAdd
Inserisce un nuovo set di tipi di attributo. Richiede che la descrizione di un set di tipi di attributo sia univoca.
Argomenti | Tipo |
---|---|
Descrizione (=Identità) | Testo |
Tipo restituito | Tipo |
AttributeTypeSetID | Testo |
AttributeTypeSetAddAttributeType
Inserisce un nuovo tipo di attributo in un set di tipi di attributo esistente. Richiede che le descrizioni del set di tipi di attributo e del tipo di attributo siano univoche.
Argomenti | Tipo |
---|---|
AttributeTypeSetID | Testo |
AttributeTypeID | Testo |
Ordine | Numero |
LocationID | Testo Nota: la posizione è "group" o "single". |
Obbligatorio | ["0"|"1"|"N"|"Y"] |
Tipo restituito | Tipo |
ObjectTypeAddAttributeTypeSet
Aggiunge un tipo di attributo impostato su un tipo di oggetto. Richiede che la descrizione del tipo di oggetto e il set di tipi di attributo siano univoci. I tipi di oggetto sono: System, OrgUnit, User, Task.
Argomenti | Tipo |
---|---|
ObjectTypeID | Testo |
AttributeTypeSetID | Testo |
Ordine | Numero |
Visible |
|
Tipo restituito | Tipo |
OrgUnitadd
Crea una nuova unità organizzativa, restituisce l'ID della nuova unità organizzativa.
Argomenti | Tipo |
---|---|
description | |
orgtypeID | |
parentID | |
OrgUnitinheritedroles (facoltativo) | |
Tipo restituito | Tipo |
ID della nuova unità | Parametro OrgUnitinheritedroles ha il valore sì o no. |
OrgUnitaddsupervisor
Creare un utente un supervisore di un'unità organizzativa.
Argomenti | Tipo |
---|---|
svroleID | L'id utente dell'argomento può essere usato anche. In questo caso, viene selezionato il ruolo di supervisore predefinito. Un ruolo di supervisore predefinito ha un nome come __svrole seguito da un numero. L'id utente dell'argomento può essere usato per la compatibilità con le versioni precedenti. |
OrgUnitID |
OrgUnitadduser
Creare un utente membro di un'unità organizzativa.
Argomenti | Tipo |
---|---|
userID | |
OrgUnitID |
OrgUnitdelete
Rimuove un'unità organizzativa.
Argomenti | Tipo |
---|---|
OrgUnitID |
OrgUnitdeleteuser
Rimuove un utente come membro di un'unità organizzativa.
Argomenti | Tipo |
---|---|
userID | |
OrgUnitID |
roleadd
Crea un nuovo ruolo.
Argomenti | Tipo |
---|---|
Descrizione | |
svrole | |
svroleID (facoltativo) | Se questo argomento non è presente, viene usato un ruolo di supervisore dell'utente corrente. |
ContextAdaptable (facoltativo) | ["0","1","N","Y"] |
MaxPermissions (facoltativo) | Integer |
MaxRoles (facoltativo) | Integer |
MaxUsers (facoltativo) | Integer |
Tipo restituito | Tipo |
ID del nuovo ruolo |
roleaddOrgUnit
Assegna un ruolo a un'unità organizzativa.
Argomenti | Tipo |
---|---|
OrgUnitID | Roleid |
ereditaThisRole | 'true' o 'false', indica se il ruolo viene proposto alle unità sottostanti. |
roleaddrole
Assegna un ruolo come subrole di un altro ruolo.
Argomenti | Tipo |
---|---|
Roleid | |
subRoleID |
roleaddsupervisor
Creare un utente un supervisore di un ruolo.
Argomenti | Tipo |
---|---|
svroleID | L'id utente dell'argomento può essere usato anche. In questo caso, viene selezionato il ruolo di supervisore predefinito. Un ruolo di supervisore predefinito ha un nome come __svrole seguito da un numero. L'id utente dell'argomento può essere usato per la compatibilità con le versioni precedenti. |
Roleid |
roleadduser
Assegna un ruolo a un utente. Il ruolo non può essere un ruolo adattabile al contesto quando non viene specificato alcun contestoID.
Argomenti | Tipo |
---|---|
userID | |
Roleid | |
durationType (facoltativo) | Può contenere i valori 'free', 'hours' e 'days'. |
durationLength (facoltativo) | Obbligatorio quando durationType è 'ore' o 'giorni'. deve contenere il valore intero per il numero di ore o giorni assegnati al ruolo a un utente. |
start (facoltativo) | Data e ora in cui viene assegnato il ruolo. Quando questo attributo viene omesso, il ruolo viene assegnato immediatamente. Il formato di data è 'AAAAA-MM-DDThh:nn:ss", dove sono necessari solo anno, mese e giorno. ad esempio "2004-12-11" e "2004-11-28T08:00" sono valori validi. |
end (facoltativo) | Data e ora in cui il ruolo viene revocato. Quando viene specificato durationType e durationLength, questo valore viene ignorato. Il formato di data è 'AAAAA-MM-DDThh:nn:ss", dove sono necessari solo anno, mese e giorno. ad esempio "2004-12-11" e "2004-11-28T08:00" sono valori validi. |
linkreason | Obbligatorio quando viene specificato l'inizio, la fine o la durata, altrimenti ignorata. |
contextId (facoltativo) | ID dell'unità organizzativa, obbligatorio solo per i ruoli adattabili al contesto. |
roledelete
Elimina un ruolo.
Argomenti | Tipo |
---|---|
Roleid |
roledeleteuser
Rimuove l'assegnazione di ruolo a un utente. I ruoli ereditati dall'utente vengono revocati da questo comando.
Argomenti | Tipo |
---|---|
userID | |
Roleid | |
contextID (facoltativo) |
roleproposeOrgUnit
Propone un ruolo da assegnare ai membri e alle sotto-organizzazioni di un'organizzazioneunit.
Argomenti | Tipo |
---|---|
OrgUnitID | |
Roleid | |
durationType (facoltativo) | Può contenere valori 'free', 'hours' e 'days'. |
durationLength | Obbligatorio quando durationType è 'hours' o 'days', deve contenere il valore intero per il numero di ore o giorni assegnati al ruolo a un utente. |
durationFixed | 'true' o 'false', indica se l'assegnazione di questo ruolo a un utente deve essere uguale a durationLength. |
inheritThisRole | 'true' o 'false', indica se il ruolo viene proposto alle unità sottostanti. |
taskadd
Crea una nuova attività, restituisce l'ID della nuova attività.
Argomenti | Tipo |
---|---|
Applicationid | |
description | Testo con un massimo di 254 caratteri. |
taskname | Testo con un massimo di 254 caratteri. |
tokenGroupID | |
svroleID (facoltativo) | Se questo argomento non è presente, viene usato un ruolo di supervisore dell'utente corrente. |
contextAdaptable (facoltativo) | ["0","1","N","Y"] |
underconstruction (facoltativo) | ["0","1","N","Y"] |
auditaction (facoltativo) |
|
auditalertmail (facoltativo) | L'indirizzo di posta elettronica a sono stati avvisi relativi a questa autorizzazione vengono inviati dal revisore. Se questo argomento non è presente, viene utilizzato l'indirizzo di posta elettronica dell'avviso del revisore. |
MaxRoles (facoltativo) | Integer |
MaxUsers (facoltativo) | Integer |
Tipo restituito | ID della nuova attività. |
taskadditask
Indicare che due attività non sono compatibili.
Argomenti | Tipo |
---|---|
Taskid | |
taskID2 |
taskaddrole
Assegna un'attività a un ruolo.
Argomenti | Tipo |
---|---|
Roleid | |
Taskid |
taskaddsupervisor
Rendere un utente un supervisore di un'attività.
Argomenti | Tipo |
---|---|
svroleID | È anche possibile usare l'ID utente dell'argomento. In questo caso, viene selezionato il ruolo supervisore predefinito. Un ruolo supervisore predefinito ha un nome come __svrole seguito da un numero. L'id utente dell'argomento può essere usato per la compatibilità con le versioni precedenti. |
Taskid |
Useradd
Crea un nuovo utente, restituisce l'ID del nuovo utente.
Argomenti | Tipo |
---|---|
description | |
alias | |
Languageid |
|
OrgUnitID | |
enddate (facoltativo) | Il formato della data è 'AAAA-MM-GGThh:nn:ss", dove sono necessari solo anno, mese e giorno. ad esempio "2004-12-11" e "2004-11-28T08:00" sono valori validi. |
disabilitato (facoltativo) |
|
MaxPermissions (facoltativo) | Integer |
MaxRoles (facoltativo) | Integer |
Tipo restituito | ID del nuovo utente. |
UserAddRole
Aggiunge un ruolo utente.
Argomenti | Tipo |
---|---|
UserDeleteRole
Elimina un ruolo utente.
Argomenti | Tipo |
---|---|
Userupdate
Esegue l'aggiornamento di un utente.
Argomenti | Tipo |
---|---|
UserID | |
descrizione (facoltativo) | |
Linguaggio |
|
userDisabled (facoltativo) |
|
UserEndDate (facoltativo) | Il formato di data è 'AAAAA-MM-DDThh:nn:ss", dove sono necessari solo anno, mese e giorno. ad esempio "2004-12-11" e "2004-11-28T08:00" sono valori validi. |
firstName (facoltativo) | |
middleName (facoltativo) | |
lastName (facoltativo) | |
maxPermissions (facoltativo) | Integer |
maxRoles (facoltativo) | Integer |
Funzioni GetInfo
Il set di funzioni descritte in questa sezione può essere usato per recuperare informazioni archiviate nel sistema BHOLD. Ogni funzione può essere chiamata usando la funzione GetInfo dall'oggetto BScript. Alcuni oggetti richiedono parametri. I dati restituiti sono soggetti alle autorizzazioni di visualizzazione e agli oggetti con supervisione dell'utente connessi.
Argomenti GetInfo
Nome | Descrizione |
---|---|
scala Web | Restituisce una lista di applicazioni. |
attributitipi | Restituisce un elenco di tipi di attributo. |
orgtypes | Restituisce un elenco di tipi di unità organizzativa. |
OrgUnits | Restituisce un elenco di unità organizzative senza gli attributi delle unità organizzative. |
OrgUnitproposedroles | Restituisce un elenco di ruoli proposti collegati all'unità organizzativa. |
OrgUnitroles | Restituisce un elenco di ruoli collegati direttamente dell'unità organizzativa specificata |
Objecttypeattributetypes | |
autorizzazioni | |
permissionusers | |
Ruoli | Restituisce un elenco di ruoli. |
roletasks | Restituisce un elenco di attività del ruolo specificato. |
attività | Restituisce tutte le attività note da BHOLD. |
user | Restituisce un elenco di utenti. |
usersroles | Restituisce l'elenco dei ruoli di supervisore collegati dell'utente specificato. |
userpermissions | Restituisce l'elenco delle autorizzazioni dell'utente specificato. |
Informazioni orgUnit
Nome | Parametri | Tipo restituito |
---|---|---|
OrgUnit | OrgUnitID | OrgUnit |
OrgUnitasiattributes | OrgUnitID | Raccolta |
OrgUnits | filtro (facoltativo), proptypeid (facoltativo) Cerca le unità che contengono la stringa descritta nel filtro nel proptype descritto in proptypeid. Se questo ID viene omesso, il filtro si applica alla descrizione dell'unità. Se non viene fornito alcun filtro, vengono restituite tutte le unità visibili. |
Raccolta |
OrgUnitOrgUnits | OrgUnitID | Raccolta |
OrgUnitparents | OrgUnitID | Raccolta |
OrgUnitpropertyvalues | OrgUnitID | Raccolta |
OrgUnitproptypes | Raccolta | |
OrgUnitusers | OrgUnitID | Raccolta |
OrgUnitproposedroles | OrgUnitID | Raccolta |
OrgUnitroles | OrgUnitID | Raccolta |
OrgUnitinheritedroles | OrgUnitID | Raccolta |
OrgUnitsupervisors | OrgUnitID | Raccolta |
OrgUnitinheritedsupervisors | OrgUnitID | Raccolta |
OrgUnitsupervisorroles | OrgUnitID | Raccolta |
Informazioni sul ruolo
Nome | Parametri | Tipo restituito |
---|---|---|
ruolo | Roleid | Oggetto |
Ruoli | filtro (facoltativo) | Raccolta |
roleasiattributes | Roleid | Raccolta |
roleOrgUnits | Roleid | Raccolta |
roleparentroles | Roleid | Raccolta |
rolesubroles | Roleid | Raccolta |
rolesupervisors | Roleid | Raccolta |
rolesupervisorroles | Roleid | Raccolta |
roletasks | Roleid | Raccolta |
roleusers | Roleid | Raccolta |
rolesupervisorroles | Roleid | Raccolta |
proposeroleOrgUnits | Roleid | Raccolta |
proposeroleusers | Roleid | Raccolta |
Autorizzazione - Informazioni sulle attività
Nome | Parametri | Tipo restituito |
---|---|---|
autorizzazione | TaskID | Autorizzazione |
autorizzazioni | filtro (facoltativo) | Raccolta |
permissionasiattributes | TaskID | Raccolta |
permissionattachments | TaskID | Raccolta |
permissionattributetypes | - | Raccolta |
permissionparams | TaskID | Raccolta |
permissionroles | TaskID | Raccolta |
permissionsupervisors | TaskID | Raccolta |
permissionsupervisorroles | TaskID | Raccolta |
permissionusers | TaskID | Raccolta |
attività | TaskID | Attività |
attività | filtro (facoltativo) | Raccolta |
taskattachments | TaskID | Raccolta |
taskparams | TaskID | Raccolta |
taskroles | TaskID | Raccolta |
tasksupervisors | TaskID | Raccolta |
tasksupervisorroles | TaskID | Raccolta |
taskusers | TaskID | Raccolta |
Informazioni utente
Nome | Parametri | Tipo restituito |
---|---|---|
utente | UserID | Utente |
user | filter (facoltativo), attributetypeid (facoltativo) Cerca gli utenti che contengono il tipo di attributo specificato da attributetypeid la stringa specificata dal filtro. Se questo ID viene omesso, il filtro si applica all'alias predefinito dell'utente. Se non viene fornito alcun filtro, vengono restituiti tutti gli utenti visibili. Ad esempio:
|
UserCollection |
usersapplications | UserID | Raccolta |
Userpermissions | UserID | Raccolta |
userroles | UserID | Raccolta |
usersroles | UserID | Raccolta |
userstasks | UserID | Raccolta |
usersunits | UserID | Raccolta |
usertasks | UserID | Raccolta |
userunits | UserID | Raccolta |
Tipi restituiti
In questa sezione vengono descritti i tipi restituiti della funzione GetInfo.
Nome | Tipo restituito |
---|---|
Raccolta | =<ITEMS>{<ITEM description="..." id="..." />}</ITEMS> |
Oggetto | =<ITEM type="…" description="..." /> |
OrgUnit | = <ITEM id="…" description="..." orgtype="..." parent="..."> <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM> |
Autorizzazione | = <ITEM id="…" description="…" name="…" tokengroup="…" application="…" > <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM> |
Ruoli | = <ITEMS> {<ITEM id="…" description="…" />} </ITEMS> |
Ruolo | = <ITEM id="…" description="… " > <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM> |
Attività | Vedere Autorizzazione |
Utenti | = <ITEMS> {<ITEM description="…" id="…" alias="…" />} </ITEMS> |
Utente | = <ITEM id="…" description="…" alias="…" firstname="…" lastname="…" uuid="…" language="…"> <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM> |
Esempio di script
Una società dispone di un server BHOLD e vuole uno script automatizzato che crea nuovi clienti. Le informazioni relative all'azienda e al responsabile degli acquisti vengono immesse in una pagina Web personalizzata. Ogni cliente viene presentato nel modello come unità sotto l'unità clienti. Il responsabile degli acquisti è anche membro di questa unità. Viene creato un ruolo che concede ai proprietari il diritto di acquistare in nome del nuovo cliente.
Tuttavia, questo cliente non esiste nell'applicazione. Esiste una funzione speciale implementata nella funzione ASIDispatch che crea un nuovo account cliente nell'applicazione di acquisto. Ogni cliente ha un tipo di cliente.
I tipi possibili possono essere presentati anche dalla funzione FunctionDispatch. L'AA sceglie il tipo corretto per il nuovo cliente.
Creare un ruolo e un'attività per presentare i privilegi di acquisto. Il privilegio di acquisto reale viene presentato dall'ambiente del servizio app come file /customers/customer id/purchase
. Questo file deve essere collegato alla nuova attività.
La pagina Server attivo che raccoglie le informazioni è simile alla seguente:
<%@ Language=VBScript %>
<% Option Explicit %>
<html>
<body>
<form action="MySubmit.asp" method=post>
<input type="hidden" name="OrgUnitID"
value="<% = Request("ID") %>">
Company <input type="text" name="Description"> <br>
Type <select name="OrgType">
<%Dim oOrgType
For Each oOrgType on bscript.getinfo("Orgtypes") %>
<option value="<% = oOrgType.OrgTypeID %>">
<% = oOrgType.Description %>
</option> <%
Next %>
</select> <br>
Manager <input type="text" name=" manager"> <br>
Alias <input type=" text" name=" alias"> <br>
e-mail <input type=" text" name=" email"> <br>
<input type="submit">
</form>
</body>
</html>
Tutte le pagine personalizzate devono richiedere le informazioni corrette e creare un documento XML con le informazioni richieste. In questo esempio, la pagina MySubmit trasforma i dati nel documento XML, assegnandolo a b1script. L'oggetto Parameters e infine chiama la b1script.ExecuteScript("MyScript")
funzione .
Lo script di input seguente mostra questo esempio:
<customer>
<description>ACME inc.</description>
<orgtype>5<orgtype>
<name>John Doe</name>
<alias>jdoe</alias>
<email>jdoe@acme.com</email>
</customer>
Questo script di input non contiene comandi per BHOLD. Questo perché questo script non viene eseguito direttamente da BHOLD; invece di esso, questo è l'input per una funzione predefinita. Questa funzione predefinita converte questo oggetto in un documento XML con comandi BHOLD. Questo meccanismo impedisce all'utente di inviare script al sistema BHOLD che contiene funzioni che l'utente non è autorizzato a eseguire, ad esempio setUser e function dispatches a un ambiente del servizio app.
<?xml version="1.0" encoding="utf-8" ?>
- <functions xmlns="http://tempuri.org/BscriptFunctions.xsd">
<function name="roleadduser" roleid="" userid="" />
<function name="roledeleteuser" roleid="" userid="" />
</functions>