Referensi pengembang BHOLD untuk Microsoft Identity Manager 2016
Modul BHOLD-core dapat memproses perintah skrip. Ini dapat dilakukan dengan langsung menggunakan bscript.dll dalam proyek .NET. Juga Berinteraksi dengan layanan web antarmuka b1scriptservice.asmx.
Sebelum skrip dijalankan, semua informasi di dalam skrip harus dikumpulkan untuk menyusun skrip ini. Informasi ini dapat dikumpulkan dari sumber berikut:
- Masukan Pengguna
- Data BHOLD
- Aplikasi
- Lainnya
Data BHOLD dapat diambil dengan menggunakan fungsi GetInfo dari objek skrip. Ada daftar lengkap perintah yang dapat menyajikan semua data yang disimpan dalam database BHOLD. Namun, data yang disajikan tunduk pada izin tampilan pengguna yang masuk. Hasilnya adalah dalam bentuk dokumen XML yang dapat diurai.
Sumber lain untuk informasi dapat menjadi salah satu aplikasi yang dikendalikan oleh BHOLD. Snap-in aplikasi memiliki fungsi khusus, FunctionDispatch, yang dapat digunakan untuk menyajikan informasi khusus aplikasi. Ini disajikan sebagai dokumen XML juga.
Akhirnya, jika tidak ada cara lain, skrip dapat berisi perintah langsung ke aplikasi atau sistem lain. NoThenstallation perangkat lunak tambahan di server BHOLD dapat merusak keamanan seluruh sistem.
Semua informasi ini dimasukkan ke dalam satu dokumen XML dan ditetapkan ke objek skrip BHOLD. Objek menggabungkan dokumen ini dengan fungsi yang telah ditentukan sebelumnya. Fungsi yang telah ditentukan sebelumnya adalah dokumen XSL yang menerjemahkan dokumen input skrip ke dalam dokumen perintah BHOLD.
Perintah dijalankan dengan urutan yang sama seperti dalam dokumen. Jika satu fungsi gagal, semua perintah yang dijalankan akan digulung balik.
Bagian ini menjelaskan cara menggunakan objek skrip.
Fungsi GetInfo digunakan untuk mengambil informasi dari data yang tersedia dalam sistem otorisasi BHOLD. Fungsi ini memerlukan nama fungsi dan akhirnya satu atau beberapa parameter. Jika fungsi ini berhasil, objek atau koleksi BHOLD dikembalikan dalam bentuk dokumen XML.
Jika fungsi tidak berhasil, fungsi GetInfo mengembalikan string kosong atau kesalahan. Deskripsi kesalahan dan angka dapat digunakan untuk mendapatkan informasi lebih lanjut tentang kegagalan tersebut.
Fungsi GetInfo 'FunctionDispatch' dapat digunakan untuk mengambil informasi dari aplikasi yang dikendalikan oleh sistem BHOLD. Fungsi ini memerlukan tiga parameter: ID aplikasi, fungsi pengiriman seperti yang didefinisikan dalam ASI, dan dokumen XML dengan informasi pendukung untuk ASI. Jika fungsi berhasil, hasilnya tersedia dalam format XML dalam objek hasil.
Cuplikan di bawah ini adalah contoh C# sederhana dari GetInfo:
ScriptProcessor myScriptProcessor = new ScriptProcessor();
myScriptProcessor.Initializae("CORP\\b1user");
myScriptProcessor.GetInfo("OrgUnit", "1");
Demikian juga, objek BScript juga dapat diakses melalui layanan b1scriptservice
web . Ini dilakukan dengan menambahkan referensi web ke proyek Anda menggunakan http://< server>:5151/BHOLD/Core/b1scriptservice.asmx di mana <server> adalah server dengan biner BHOLD diinstal. Untuk informasi selengkapnya, lihat Menambahkan referensi layanan web ke proyek Visual Studio.
Contoh berikut menunjukkan cara menggunakan fungsi GetInfo dari layanan web. Kode ini mengambil Unit Organisasi yang memiliki OrgID 1 lalu menampilkan nama Unit Organisasi tersebut di layar.
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);
}
}
}
Contoh VBScript berikut menggunakan layanan web melalui SOAP dan menggunakan GetInfo. Untuk contoh tambahan untuk SOAP 1.1, SOAP 1.2, dan HTTP POST, lihat bagian Referensi Terkelola BHOLD atau Anda dapat menavigasi ke layanan web langsung dari browser dan melihatnya di sana.
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
Fungsi ExecuteScript dari objek BScript dapat digunakan untuk menjalankan skrip. Fungsi ini memerlukan dua parameter. Parameter pertama adalah dokumen XML yang berisi informasi kustom yang akan digunakan oleh skrip. Parameter kedua adalah nama skrip yang telah ditentukan sebelumnya yang akan digunakan. Dalam direktori skrip BHOLD yang telah ditentukan sebelumnya, di sini harus berupa dokumen XSL dengan nama yang sama dengan fungsi, tetapi dengan ekstensi .xsl.
Jika fungsi tidak berhasil, fungsi ExecuteScript mengembalikan nilai False. Deskripsi kesalahan dan angka dapat digunakan untuk mengetahui apa yang salah. Berikut ini adalah contoh penggunaan metode web ExecuteXML. Metode ini memanggil 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;
Fungsi GetInfo ini tersedia setelah fungsi executescript dijalankan. Fungsi mengembalikan string berformat XML yang berisi laporan eksekusi lengkap. Simpul Skrip berisi struktur XML skrip yang dijalankan.
Untuk setiap fungsi yang gagal selama eksekusi skrip, Fungsi Simpul ditambahkan dengan Nama simpul. ExecuteXML dan Kesalahan ditambahkan ke akhir dokumen semua ID yang dihasilkan ditambahkan.
Perhatikan bahwa hanya fungsi, yang berisi kesalahan yang ditambahkan. Jumlah kesalahan '0' berarti bahwa fungsi tidak dijalankan.
<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>
Parameter ID mendapatkan perlakuan khusus. Nilai non-numerik digunakan sebagai nilai pencarian untuk menemukan entitas yang sesuai di penyimpanan data BHOLD. Saat nilai pencarian tidak unik, entitas pertama yang mematuhi nilai pencarian dikembalikan.
Untuk membedakan nilai pencarian numerik dari ID, dimungkinkan untuk menggunakan awalan. Ketika enam karakter pertama dari nilai pencarian sama dengan 'no_id:' maka karakter ini dilucuti sebelum nilai digunakan untuk pencarian. Karakter kartubebas SQL '%' dapat digunakan.
Bidang berikut digunakan dengan nilai pencarian:
Jenis ID | Bidang pencarian |
---|---|
OrgUnitID | Deskripsi |
roleID | Deskripsi |
taskID | Deskripsi |
userID | DefaultAlias |
Kode sisi server di Halaman Server Aktif digunakan untuk menjalankan skrip. Oleh karena itu, akses ke skrip berarti akses ke halaman-halaman ini. Sistem BHOLD menyimpan informasi tentang titik masuk halaman kustom. Informasi ini mencakup deskripsi halaman mulai dan fungsi (beberapa bahasa harus didukung).
Pengguna berwenang untuk dapat memasukkan halaman kustom dan menjalankan skrip. Setiap titik masuk disajikan sebagai tugas. Setiap pengguna yang mendapatkan tugas ini melalui peran atau unit dapat menjalankan fungsi yang sesuai.
Fungsi baru di menu menyajikan semua fungsi kustom yang dapat dijalankan oleh pengguna. Karena skrip dapat melakukan tindakan dalam sistem BHOLD di bawah identitas yang berbeda dari pengguna yang masuk. Dimungkinkan untuk memberikan izin untuk melakukan satu tindakan tertentu tanpa memiliki pengawasan atas objek apa pun. Misalnya, ini dapat berguna bagi karyawan yang hanya diizinkan untuk memasukkan pelanggan baru ke perusahaan. Skrip ini juga dapat digunakan untuk membuat halaman pendaftaran mandiri.
Skrip perintah berisi daftar fungsi yang dijalankan oleh sistem BHOLD. Daftar ditulis dalam dokumen XML yang sesuai dengan definisi berikut:
Skrip perintah | <functions>functions</functions> |
---|---|
fungsi | fungsi {function} |
fungsi | <function name="functionName" functionParameters [return] (/> | > parameterList </ function>) |
functionName | Nama fungsi yang valid seperti yang dijelaskan di bagian berikut. |
functionParameters | { functionParameter } |
functionParameter | parameterName = "parameterValue" |
parameterName | Nama parameter yang valid. |
parameterValue | @variable@ | Nilai |
nilai | Nilai parameter yang valid. |
parameterList | <> parameter {parameterItem} </parameters> |
parameterItem | <parameter name="parameterName"> parameterValue </parameter> |
return | return="@variable@" |
variabel | Nama variabel kustom. |
XML memiliki terjemahan karakter khusus berikut:
XML | Karakter |
---|---|
& |
& |
< |
< |
> |
> |
" |
" |
' |
' |
Karakter XML ini dapat digunakan dalam pengidentifikasi, tetapi tidak disarankan.
Kode berikut menunjukkan contoh dokumen perintah yang valid dengan tiga fungsi:
<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>
Fungsi OrgUnitAdd menyimpan ID unit yang dibuat dalam variabel yang disebut UnitID. Variabel ini digunakan sebagai input untuk fungsi UserAdd. Nilai yang dikembalikan dari fungsi ini tidak digunakan. Bagian berikut menjelaskan semua fungsi yang tersedia, parameter yang diperlukan, dan nilai pengembaliannya.
Bagian ini menjelaskan cara menggunakan fungsi eksekusi.
Buat aturan atribut baru pada jenis atribut tertentu. Aturan atribut hanya dapat ditautkan ke satu jenis atribut.
Aturan atribut yang ditentukan dapat ditautkan ke semua jenis atribut yang mungkin.
RuleType tidak dapat diubah dengan perintah "ABAattributeruletypeupdate". Mengharuskan deskripsi atribut dengan unik.
Argumen | Jenis |
---|---|
Deskripsi | Teks |
RuleType | Tentukan jenis aturan atribut. Bergantung pada jenis jenis aturan atribut argumen lain harus disertakan. Nilai jenis aturan berikut ini valid:
|
InvertResult | ["0"|"1"|"N"|"Y"] |
AttributeTypeID | Teks |
Argumen opsional | Jenis |
---|---|
Operator | Teks Catatan: Argumen ini wajib jika RuleType adalah 1 atau 4. Nilai yang mungkin adalah '=', '<', atau '>'. Tag XML perlu menggunakan ">" untuk '>' dan "<" untuk '<'. |
RangeMin | Telepon Catatan: Argumen ini wajib jika RuleType adalah 3. |
RangeMax | Telepon Catatan: Argumen ini wajib jika RuleType adalah 3. |
Nilai | Teks Catatan: Argumen ini wajib jika RuleType adalah 0, 1, atau 4. Argumen harus berupa nilai numerik atau alfanumerik. |
Jenis pengembalian AttributeRuleID | Teks |
Membuat aplikasi baru, mengembalikan ID aplikasi baru.
Argumen | Jenis |
---|---|
deskripsi | |
komputer | |
modul | |
parameter | |
protokol | |
nama pengguna | |
kata sandi | |
svroleID (opsional) | Jika argumen ini tidak ada, peran supervisor dari pengguna saat ini digunakan. |
Applicationaliasformula (opsional) | Rumus alias digunakan untuk membuat alias untuk pengguna saat ditetapkan ke izin aplikasi. Alias dibuat jika pengguna belum menjadi alias untuk aplikasi ini. Jika tidak ada nilai yang diberikan alias default pengguna digunakan sebagai alias untuk aplikasi. Rumus diformat sebagai [<<objecttype>>.<<nameofobjecttypeattribute>>(startindexoffset,length offset)] . Offset bersifat opsional. Hanya atribut Pengguna dan Aplikasi yang dapat digunakan. Teks bebas dapat digunakan. Karakter yang dipesan adalah kurung siku kiri ([) dan kurung siku kanan (]). Misalnya: [Application.bholdDescription]\[User.bholdDefAlias(1,5)] . |
Jenis Hasil | ID aplikasi baru. |
Mengatur nilai jenis atribut yang tersambung ke jenis objek. Mengharuskan deskripsi jenis objek dan jenis atribut unik.
Argumen | Jenis |
---|---|
ObjectTypeID | Teks |
ObjectID | Teks |
AttributeTypeID | Teks |
Nilai | Teks |
Tipe hasil | Jenis |
Menyisipkan tipe atribut/tipe properti baru.
Argumen | Jenis |
---|---|
DataTypeID | Teks |
Deskripsi (=Identitas) | Teks Catatan: Kata khusus tidak dapat digunakan, termasuk 'a', 'frm', 'id', 'usr', dan 'bhold'. |
MaxLength | Angka dalam [1,..,255] |
ListOfValues (boolean) | ["0"|"1"|"N"|"Y"] |
DefaultValue | Teks |
Tipe hasil | Jenis |
AttributeTypeID | Teks |
Menyisipkan set tipe atribut baru. Mengharuskan deskripsi set jenis atribut unik.
Argumen | Jenis |
---|---|
Deskripsi (=Identitas) | Teks |
Tipe hasil | Jenis |
AttributeTypeSetID | Teks |
Menyisipkan jenis atribut baru dalam set jenis atribut yang ada. Mengharuskan deskripsi set jenis atribut dan jenis atribut unik.
Argumen | Jenis |
---|---|
AttributeTypeSetID | Teks |
AttributeTypeID | Teks |
Pesanan | Telepon |
LocationID | Teks Catatan: Lokasinya adalah "grup" atau "tunggal." |
Wajib | ["0"|"1"|"N"|"Y"] |
Tipe hasil | Jenis |
Menambahkan jenis atribut yang diatur ke jenis objek. Mengharuskan deskripsi jenis objek dan set jenis atribut unik. Jenis objek adalah: Sistem, OrgUnit, Pengguna, Tugas.
Argumen | Jenis |
---|---|
ObjectTypeID | Teks |
AttributeTypeSetID | Teks |
Pesanan | Telepon |
Terlihat |
|
Tipe hasil | Jenis |
Membuat unit organisasi baru, mengembalikan ID unit organisasi baru.
Argumen | Jenis |
---|---|
deskripsi | |
orgtypeID | |
parentID | |
OrgUnitinheritedroles (opsional) | |
Tipe hasil | Jenis |
ID unit baru | The parameter OrgUnitinheritedroles memiliki nilai ya atau tidak. |
Jadikan pengguna sebagai supervisor unit organisasi.
Argumen | Jenis |
---|---|
svroleID | UserID argumen juga dapat digunakan. Dalam hal ini, peran supervisor default dipilih. Peran supervisor default memiliki nama seperti __svrole diikuti dengan angka. UserID argumen dapat digunakan untuk kompatibilitas mundur. |
OrgUnitID |
Jadikan pengguna sebagai anggota unit organisasi.
Argumen | Jenis |
---|---|
userID | |
OrgUnitID |
Menghapus unit organisasi.
Argumen | Jenis |
---|---|
OrgUnitID |
Menghapus pengguna sebagai anggota unit organisasi.
Argumen | Jenis |
---|---|
userID | |
OrgUnitID |
Membuat peran baru.
Argumen | Jenis |
---|---|
Deskripsi | |
svrole | |
svroleID (opsional) | Jika argumen ini tidak ada, maka peran supervisor dari pengguna saat ini digunakan. |
ContextAdaptable (opsional) | ["0","1","N","Y"] |
MaxPermissions (opsional) | Bilangan bulat |
MaxRoles (opsional) | Bilangan bulat |
MaxUsers (opsional) | Bilangan bulat |
Tipe hasil | Jenis |
ID peran baru |
Menetapkan peran ke unit organisasi.
Argumen | Jenis |
---|---|
OrgUnitID | roleID |
inheritThisRole | 'true' atau 'false', menunjukkan apakah peran diusulkan ke unit yang mendasar. |
Menetapkan peran sebagai subrole dari peran lain.
Argumen | Jenis |
---|---|
roleID | |
subRoleID |
Jadikan pengguna sebagai supervisor peran.
Argumen | Jenis |
---|---|
svroleID | UserID argumen juga dapat digunakan. Dalam hal ini, peran supervisor default dipilih. Peran supervisor default memiliki nama seperti __svrole diikuti dengan angka. UserID argumen dapat digunakan untuk kompatibilitas mundur. |
roleID |
Menetapkan peran kepada pengguna. Peran tidak dapat menjadi peran konteks yang dapat disesuaikan ketika tidak ada contextID yang diberikan.
Argumen | Jenis |
---|---|
userID | |
roleID | |
durationType (opsional) | Dapat berisi nilai 'gratis', 'jam', dan 'hari'. |
durationLength (opsional) | Diperlukan ketika durationType adalah 'jam' atau 'hari'. harus berisi nilai bilangan bulat untuk jumlah jam atau hari peran ditetapkan untuk pengguna. |
mulai (opsional) | Tanggal dan waktu saat peran ditetapkan. Ketika atribut ini dihilangkan, peran segera ditetapkan. Format tanggal adalah 'YYYY-MM-DDThh:nn:ss", di mana hanya tahun, bulan, dan hari yang diperlukan. misalnya "2004-12-11" dan "2004-11-28T08:00" adalah nilai yang valid. |
akhir (opsional) | Tanggal dan waktu ketika peran dicabut. Ketika durationType dan durationLength diberikan, nilai ini diabaikan. Format tanggal adalah 'YYYY-MM-DDThh:nn:ss", di mana hanya tahun, bulan, dan hari yang diperlukan. misalnya "2004-12-11" dan "2004-11-28T08:00" adalah nilai yang valid. |
linkreason | Diperlukan saat mulai, berakhir, atau durasi diberikan, jika tidak diabaikan. |
contextId (opsional) | ID unit organisasi, hanya diperlukan untuk peran konteks yang dapat beradaptasi. |
Menghapus peran.
Argumen | Jenis |
---|---|
roleID |
Menghapus penetapan peran kepada pengguna. Peran yang diwariskan oleh pengguna dicabut oleh perintah ini.
Argumen | Jenis |
---|---|
userID | |
roleID | |
contextID (opsional) |
Mengusulkan peran untuk menetapkannya kepada anggota dan sub-OrgUnits dari OrgUnit.
Argumen | Jenis |
---|---|
OrgUnitID | |
roleID | |
durationType (opsional) | Dapat berisi nilai 'bebas', 'jam', dan 'hari'. |
durationLength | Diperlukan ketika durationType adalah 'jam' atau 'hari', harus berisi nilai bilangan bulat untuk jumlah jam atau hari peran ditetapkan kepada pengguna. |
durationFixed | 'true' atau 'false', menunjukkan apakah penetapan peran ini kepada pengguna harus sama dengan durationLength. |
warisanThisRole | 'true' atau 'false', menunjukkan apakah peran diusulkan ke unit yang mendasar. |
Membuat tugas baru, mengembalikan ID tugas baru.
Argumen | Jenis |
---|---|
applicationID | |
deskripsi | Teks dengan maksimal 254 karakter. |
nama tugas | Teks dengan maksimal 254 karakter. |
tokenGroupID | |
svroleID (opsional) | Jika argumen ini tidak ada, maka peran supervisor dari pengguna saat ini digunakan. |
contextAdaptable (opsional) | ["0","1","N","Y"] |
underconstruction (opsional) | ["0","1","N","Y"] |
auditaction (opsional) |
|
auditalertmail (opsional) | Alamat email yang akan diberitahukan tentang izin ini dikirim oleh auditor. Jika argumen ini tidak ada, maka alamat email pemberitahuan auditor digunakan. |
MaxRoles (opsional) | Bilangan bulat |
MaxUsers (opsional) | Bilangan bulat |
Tipe hasil | ID tugas baru. |
Menunjukkan bahwa dua tugas tidak kompatibel.
Argumen | Jenis |
---|---|
taskID | |
taskID2 |
Menetapkan tugas ke peran.
Argumen | Jenis |
---|---|
roleID | |
taskID |
Jadikan pengguna sebagai supervisor tugas.
Argumen | Jenis |
---|---|
svroleID | UserID argumen juga dapat digunakan. Dalam hal ini, peran supervisor default dipilih. Peran supervisor default memiliki nama seperti __svrole diikuti oleh angka. UserID argumen dapat digunakan untuk kompatibilitas mundur. |
taskID |
Membuat pengguna baru, mengembalikan ID pengguna baru.
Argumen | Jenis |
---|---|
deskripsi | |
Alias | |
languageID |
|
OrgUnitID | |
enddate (opsional) | Format tanggal adalah 'YYYY-MM-DDThh:nn:ss", di mana hanya tahun, bulan, dan hari yang diperlukan. misalnya "2004-12-11" dan "2004-11-28T08:00" adalah nilai yang valid. |
dinonaktifkan (opsional) |
|
MaxPermissions (opsional) | Bilangan bulat |
MaxRoles (opsional) | Bilangan bulat |
Tipe hasil | ID pengguna baru. |
Menambahkan peran pengguna.
Argumen | Jenis |
---|---|
Menghapus peran pengguna.
Argumen | Jenis |
---|---|
Updates pengguna.
Argumen | Jenis |
---|---|
UserID | |
deskripsi (opsional) | |
bahasa |
|
userDisabled (opsional) |
|
UserEndDate (opsional) | Format tanggal adalah 'YYYY-MM-DDThh:nn:ss", di mana hanya tahun, bulan, dan hari yang diperlukan. misalnya "2004-12-11" dan "2004-11-28T08:00" adalah nilai yang valid. |
firstName (opsional) | |
middleName (opsional) | |
lastName (opsional) | |
maxPermissions (opsional) | Bilangan bulat |
maxRoles (opsional) | Bilangan bulat |
Kumpulan fungsi yang dijelaskan di bagian ini, dapat digunakan untuk mengambil informasi yang disimpan dalam sistem BHOLD. Setiap fungsi dapat dipanggil menggunakan fungsi GetInfo dari objek BScript. Beberapa objek memerlukan parameter. Data yang dikembalikan tunduk pada izin tampilan dan objek yang diawasi pengguna yang masuk.
Nama | Deskripsi |
---|---|
aplikasi | Mengembalikan daftar aplikasi. |
attributetypes | Mengembalikan daftar jenis atribut. |
orgtypes | Mengembalikan daftar jenis unit organisasi. |
OrgUnits | Mengembalikan daftar unit organisasi tanpa atribut unit organisasi. |
OrgUnitproposedroles | Mengembalikan daftar peran yang diusulkan yang ditautkan ke unit organisasi. |
OrgUnitroles | Mengembalikan daftar peran tertaut langsung dari unit organisasi yang diberikan |
Objecttypeattributetypes | |
permissions | |
permissionusers | |
peran | Mengembalikan daftar peran. |
roletasks | Mengembalikan daftar tugas dari peran yang diberikan. |
tasks | Mengembalikan semua tugas yang dikenal oleh BHOLD. |
users | Mengembalikan daftar pengguna. |
usersroles | Mengembalikan daftar peran supervisor tertaut dari pengguna tertentu. |
userpermissions | Mengembalikan daftar izin pengguna yang diberikan. |
Nama | Parameter | Tipe hasil |
---|---|---|
OrgUnit | OrgUnitID | OrgUnit |
OrgUnitasiattributes | OrgUnitID | Koleksi |
OrgUnits | filter (opsional), proptypeid (opsional) Mencari unit yang berisi string yang dijelaskan dalam filter dalam proptype yang dijelaskan dalam proptypeid. Jika ID ini dihilangkan, filter berlaku untuk deskripsi unit. Jika tidak ada filter yang disediakan, semua unit yang terlihat dikembalikan. |
Koleksi |
OrgUnitOrgUnits | OrgUnitID | Koleksi |
OrgUnitparents | OrgUnitID | Koleksi |
OrgUnitpropertyvalues | OrgUnitID | Koleksi |
OrgUnitproptypes | Koleksi | |
OrgUnitusers | OrgUnitID | Koleksi |
OrgUnitproposedroles | OrgUnitID | Koleksi |
OrgUnitroles | OrgUnitID | Koleksi |
OrgUnitinheritedroles | OrgUnitID | Koleksi |
OrgUnitsupervisors | OrgUnitID | Koleksi |
OrgUnitinheritedsupervisors | OrgUnitID | Koleksi |
OrgUnitsupervisorroles | OrgUnitID | Koleksi |
Nama | Parameter | Tipe hasil |
---|---|---|
peran | roleID | Object |
peran | filter (opsional) | Koleksi |
roleasiattributes | roleID | Koleksi |
roleOrgUnits | roleID | Koleksi |
roleparentroles | roleID | Koleksi |
rolesubroles | roleID | Koleksi |
rolesupervisors | roleID | Koleksi |
rolesupervisorroles | roleID | Koleksi |
roletasks | roleID | Koleksi |
roleusers | roleID | Koleksi |
rolesupervisorroles | roleID | Koleksi |
proposedroleOrgUnits | roleID | Koleksi |
proposedroleusers | roleID | Koleksi |
Nama | Parameter | Tipe hasil |
---|---|---|
izin | TaskID | Izin |
permissions | filter (opsional) | Koleksi |
permissionasiattributes | TaskID | Koleksi |
permissionattachments | TaskID | Koleksi |
permissionattributetypes | - | Koleksi |
permissionparams | TaskID | Koleksi |
permissionroles | TaskID | Koleksi |
permissionsupervisors | TaskID | Koleksi |
permissionsupervisorroles | TaskID | Koleksi |
permissionusers | TaskID | Koleksi |
tugas | TaskID | Tugas |
tasks | filter (opsional) | Koleksi |
taskattachments | TaskID | Koleksi |
taskparams | TaskID | Koleksi |
taskroles | TaskID | Koleksi |
tasksupervisors | TaskID | Koleksi |
tasksupervisorroles | TaskID | Koleksi |
taskusers | TaskID | Koleksi |
Nama | Parameter | Tipe hasil |
---|---|---|
pengguna | UserID | Pengguna |
users | filter (opsional), attributetypeid (opsional) Mencari pengguna yang berisi jenis atribut yang ditentukan oleh attributetypeid string yang ditentukan oleh filter. Jika ID ini dihilangkan, filter berlaku untuk alias default pengguna. Jika tidak ada filter yang disediakan, semua pengguna yang terlihat akan dikembalikan. Contohnya:
|
UserCollection |
aplikasi pengguna | UserID | Koleksi |
Userpermissions | UserID | Koleksi |
userroles | UserID | Koleksi |
usersroles | UserID | Koleksi |
tugas pengguna | UserID | Koleksi |
usersunits | UserID | Koleksi |
usertasks | UserID | Koleksi |
userunits | UserID | Koleksi |
Di bagian ini, jenis pengembalian fungsi GetInfo dijelaskan.
Nama | Tipe hasil |
---|---|
Koleksi | =<ITEMS>{<ITEM description="..." id="..." />}</ITEMS> |
Object | =<ITEM type="…" description="..." /> |
OrgUnit | = <ITEM id="…" description="..." orgtype="..." parent="..."> <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM> |
Izin | = <ITEM id="…" description="…" name="…" tokengroup="…" application="…" > <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM> |
Peran | = <ITEMS> {<ITEM id="…" description="…" />} </ITEMS> |
Peran | = <ITEM id="…" description="… " > <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM> |
Tugas | Lihat Izin |
Pengguna | = <ITEMS> {<ITEM description="…" id="…" alias="…" />} </ITEMS> |
Pengguna | = <ITEM id="…" description="…" alias="…" firstname="…" lastname="…" uuid="…" language="…"> <LIST> {<ITEM> <KEY>… </KEY> <VALUE> … </VALUE> </ITEM>} </LIST> </ITEM> |
Perusahaan memiliki server BHOLD dan menginginkan skrip otomatis yang membuat pelanggan baru. Informasi tentang perusahaan dan manajer pembeliannya masuk di halaman web yang disesuaikan. Setiap pelanggan disajikan dalam model sebagai unit di bawah pelanggan unit. Manajer pembelian juga merupakan anggota sebagai supervisor unit ini. Peran dibuat yang memberi pemilik hak untuk membeli atas nama pelanggan baru.
Namun, pelanggan ini tidak ada dalam aplikasi. Ada fungsi khusus yang diterapkan dalam ASI FunctionDispatch yang membuat akun pelanggan baru dalam aplikasi pembelian. Setiap pelanggan memiliki jenis pelanggan.
Jenis yang mungkin juga dapat disajikan oleh fungsi FunctionDispatch. AA memilih jenis yang benar untuk pelanggan baru.
Buat peran dan tugas untuk menyajikan hak istimewa pembelian. Hak istimewa pembelian nyata disajikan oleh ASI sebagai file /customers/customer id/purchase
. File ini harus ditautkan ke tugas baru.
Halaman Server Aktif yang mengumpulkan informasi terlihat seperti ini:
<%@ 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>
Semua halaman yang dikustomisasi harus dilakukan adalah meminta informasi yang tepat dan membuat dokumen XML dengan informasi yang diminta. Dalam contoh ini, halaman MySubmit mengubah data dalam dokumen XML, menetapkannya ke b1script. Objek parameter dan akhirnya memanggil b1script.ExecuteScript("MyScript")
fungsi .
Skrip input berikut menunjukkan contoh ini:
<customer>
<description>ACME inc.</description>
<orgtype>5<orgtype>
<name>John Doe</name>
<alias>jdoe</alias>
<email>jdoe@acme.com</email>
</customer>
Skrip input ini tidak berisi perintah apa pun untuk BHOLD. Ini karena skrip ini tidak dijalankan langsung oleh BHOLD; alih-alih itu, ini adalah input untuk fungsi yang telah ditentukan sebelumnya. Fungsi yang telah ditentukan sebelumnya ini menerjemahkan objek ini ke dokumen XML dengan perintah BHOLD. Mekanisme ini menahan pengguna mengirim skrip ke sistem BHOLD yang berisi fungsi yang tidak diizinkan untuk dijalankan pengguna, seperti setUser dan fungsi dikirim ke ASI.
<?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>